public MasterServer(string host, ushort port) { server = new TCPServer(2048); server.Connect(host, port); server.textMessageReceived += MessageReceived; IsRunning = true; server.disconnected += (sender) => { IsRunning = false; }; server.playerDisconnected += (player, sender) => { for (int i = 0; i < hosts.Count; i++) { if (hosts[i].Player == player) { Log($"Host [{hosts[i].Address}] on port [{hosts[i].Port}] with name [{hosts[i].Name}] removed"); hosts.RemoveAt(i); return; } } }; Task.Queue(() => { while (server.IsBound) { server.SendAll(server.GeneratePing()); Thread.Sleep(PING_INTERVAL); } }, PING_INTERVAL); }
public void hostServer() { TCPServer server = new TCPServer(maxAllowedClients); server.Connect(); Connected(server); }
public MasterServer(string host, ushort port) { server = new TCPServer(2048); server.Connect(host, port); server.textMessageReceived += MessageReceived; IsRunning = true; server.disconnected += (sender) => { IsRunning = false; }; server.playerDisconnected += (player, sender) => { for (int i = 0; i < hosts.Count; i++) { if (hosts[i].Player == player) { hosts.RemoveAt(i); return; } } }; Task.Queue(() => { while (server.IsBound) { server.SendAll(new Ping(server.Time.Timestep, false, Receivers.All, MessageGroupIds.PING, true)); Thread.Sleep(PING_INTERVAL); } }, PING_INTERVAL); }
public void TestBindTCPServer() { string validHost = "0.0.0.0"; ushort port = NetWorker.DEFAULT_PORT; int maxConnections = 32; server = new TCPServer(maxConnections); server.Connect(validHost, port); Assert.IsNotNull(server.Me); Assert.IsNotNull(server.Me.TcpListenerHandle); var endpoint = (IPEndPoint)server.Me.TcpListenerHandle.LocalEndpoint; Assert.IsTrue(server.Me.TcpListenerHandle.Server.IsBound); Assert.AreEqual(endpoint.Address.ToString(), validHost); Assert.AreEqual(endpoint.Port, port); }