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);
        }
Esempio n. 2
0
    public void hostServer()
    {
        TCPServer server = new TCPServer(maxAllowedClients);

        server.Connect();
        Connected(server);
    }
Esempio n. 3
0
        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);
        }
Esempio n. 4
0
        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);
        }