From: Alexis Laferrière Date: Tue, 30 May 2017 15:19:04 +0000 (-0400) Subject: gamnit: add server discovery or create example X-Git-Url: http://nitlanguage.org gamnit: add server discovery or create example Signed-off-by: Alexis Laferrière --- diff --git a/lib/gamnit/network/network.nit b/lib/gamnit/network/network.nit index 83fd35d..93e1407 100644 --- a/lib/gamnit/network/network.nit +++ b/lib/gamnit/network/network.nit @@ -13,6 +13,57 @@ # limitations under the License. # Easy client/server logic for games and simple distributed applications +# +# Both `gamnit::client` and `gamnit::server` can be used separately or +# together by importing `gamnit::network`. +# Use both modules to create an program that discover local servers +# or create one if none is found: +# +# ~~~ +# redef fun handshake_app_name do return "network_test" +# +# # Discover local servers +# var servers = discover_local_servers +# if servers.not_empty then +# # Try to connect to the first local server +# var server_info = servers.first +# var server = new RemoteServer(server_info) +# +# if not server.connect then +# print_error "Failed to connect to {server_info.address}:{server_info.port}" +# else if not server.handshake then +# print_error "Failed handshake with {server_info.address}:{server_info.port}" +# else +# # Connected! +# print "Connected to {server_info.address}:{server_info.port}" +# +# # Write something and close connection +# server.writer.serialize "hello server" +# server.socket.as(not null).close +# end +# else +# # Create a local server +# var connect_port = 33729 +# print "Launching server: connect on {connect_port}, discovery on {discovery_port}" +# var server = new Server(connect_port) +# +# # Don't loop if testing +# if "NIT_TESTING".environ == "true" then exit 0 +# +# loop +# # Respond to discovery requests +# server.answer_discovery_requests +# +# # Accept new clients +# var new_clients = server.accept_clients +# for client in new_clients do +# # Read something and close connection +# assert client.reader.deserialize == "hello server" +# client.socket.close +# end +# end +# end +# ~~~ module network import server