Returns the number of valid requests received.
The response messages includes the TCP listening address and port
for remote clients to connect with TCP using connect.
These connections are accepted by the server with accept_clients.
# Respond to pending discovery requests by sending the TCP listening address and port
#
# Returns the number of valid requests received.
#
# The response messages includes the TCP listening address and port
# for remote clients to connect with TCP using `connect`.
# These connections are accepted by the server with `accept_clients`.
fun answer_discovery_requests: Int
do
var count = 0
loop
var ptr = new Ref[nullable SocketAddress](null)
var read = discovery_socket.recv_from(1024, ptr)
# No sender means there is no discovery request
var sender = ptr.item
if sender == null then break
var words = read.split(" ")
if words.length != 2 or words[0] != discovery_request_message or words[1] != handshake_app_name then
print "Server Warning: Rejected discovery request '{read}' from {sender.address}:{sender.port}"
continue
end
var msg = "{discovery_response_message} {handshake_app_name} {self.port}"
discovery_socket.send_to(sender.address, sender.port, msg)
count += 1
end
return count
end
lib/gamnit/network/server.nit:112,2--141,4