예제 #1
0
        private void NewClientEvent(IAsyncResult ar)
        {
            TcpListener listener = (TcpListener)ar.AsyncState;
            TcpClient   client   = listener.EndAcceptTcpClient(ar);

            tcpClientConnected.Set();
            string c;
            int    err = NetReceive(ref client, out c, 100);

            if (err == 0)
            {
                if (c == "joinlobby")
                {
                    string n;
                    err = NetReceive(ref client, out n, 100);
                    LobbyListEntry lle = new LobbyListEntry();
                    lle.name = n;
                    lle.tc   = client;
                    err      = NetSend(ref client, "Test String", 100);

                    string ip_str = client.Client.LocalEndPoint.ToString();

                    lle.i = LobbyListAdd(ip_str, n);

                    lobby_list.Add(lle);
                }
            }
        }
예제 #2
0
        private void NewClientEvent(IAsyncResult ar)
        {
            TcpListener listener = (TcpListener)ar.AsyncState;
            TcpClient   client   = listener.EndAcceptTcpClient(ar);

            TcpClientConnected.Set();
            string    c;
            NetTunnel nt  = new NetTunnel(client, timeout);
            int       err = nt.Receive(out c);

            if (err == 0)
            {
                if (c == "joinlobby")
                {
                    string n;
                    err = nt.Receive(out n);
                    LobbyListEntry lle = new LobbyListEntry();
                    lle.name = n;
                    lle.tc   = client;
                    err      = nt.Send("Test String");

                    string ip_str = client.Client.LocalEndPoint.ToString();

                    lle.i = lobby_list.Count;

                    lobby_list.Add(lle);
                }
                else if (c == "joingame")
                {
                    string game_id;
                    string n;
                    string seat;
                    err = nt.Receive(out game_id);
                    err = nt.Receive(out n);
                    err = nt.Receive(out seat);
                    bool success = ((GameRoom)game_rooms[int.Parse(game_id)]).AddPlayer(new GamePlayer(client, n, 0), int.Parse(seat));
                    if (success)
                    {
                        err = nt.Send("You have joined " + game_id);
                    }
                    else
                    {
                        err = nt.Send("joined failed" + game_id);
                    }
                }
            }

            RestartTcpListeningCallback d = new RestartTcpListeningCallback(RestartTcpListening);

            d.Invoke();
        }
예제 #3
0
        private void NewClientEvent(IAsyncResult ar)
        {
            TcpListener listener = (TcpListener)ar.AsyncState;
            TcpClient client = listener.EndAcceptTcpClient(ar);
            TcpClientConnected.Set();
            string c;
            NetTunnel nt = new NetTunnel(client, timeout);
            int err = nt.Receive(out c);
            if (err == 0)
            {
                if (c == "joinlobby")
                {
                    string n;
                    err = nt.Receive(out n);
                    LobbyListEntry lle = new LobbyListEntry();
                    lle.name = n;
                    lle.tc = client;
                    err = nt.Send("Test String");

                    string ip_str = client.Client.LocalEndPoint.ToString();

                    lle.i = lobby_list.Count;

                    lobby_list.Add(lle);
                }
                else if (c == "joingame")
                {
                    string game_id;
                    string n;
                    string seat;
                    err = nt.Receive(out game_id);
                    err = nt.Receive(out n);
                    err = nt.Receive(out seat);
                    bool success = ((GameRoom)game_rooms[int.Parse(game_id)]).AddPlayer(new GamePlayer(client, n, 0), int.Parse(seat));
                    if (success)
                    {
                        err = nt.Send("You have joined " + game_id);
                    }
                    else
                    {
                        err = nt.Send("joined failed" + game_id);
                    }
                }

            }

            RestartTcpListeningCallback d = new RestartTcpListeningCallback(RestartTcpListening);
            d.Invoke();
        }
예제 #4
0
        private void NewClientEvent(IAsyncResult ar)
        {
            TcpListener listener = (TcpListener)ar.AsyncState;
            TcpClient client = listener.EndAcceptTcpClient(ar);
            tcpClientConnected.Set();
            string c;
            int err = NetReceive(ref client, out c, 100);
            if (err == 0)
            {
                if (c == "joinlobby")
                {
                    string n;
                    err = NetReceive(ref client, out n, 100);
                    LobbyListEntry lle = new LobbyListEntry();
                    lle.name = n;
                    lle.tc = client;
                    err = NetSend(ref client, "Test String", 100);

                    string ip_str = client.Client.LocalEndPoint.ToString();

                    lle.i = LobbyListAdd(ip_str, n);

                    lobby_list.Add(lle);
                }
            }
        }