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); } } }
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(); }