private void Disconnected(DataReceiver sender) { mf.Invoke((MethodInvoker) delegate { sender.Close(); _clients.Remove(ClientWithID(sender.ID)); Console.WriteLine(String.Format("Client({0}) disconnected, current amount of clients:{1}", sender.ID, _clients.Count)); }); }
private void Listener_SocketAccepted(System.Net.Sockets.Socket e) { mf.Invoke((MethodInvoker) delegate { DataReceiver dataReceiver = new DataReceiver(e); dataReceiver.Received += new DataReceiver.ClientReceiveHandler(DataReceived); dataReceiver.Disconnected += new DataReceiver.ClientDisconnectedHandler(Disconnected); Client client = new Client(e, dataReceiver.ID); client.ClientStatus = ClientStatus.Unverified; _clients.Add(client); Console.WriteLine(String.Format("Client({0}) connected, current amount of clients:{1}", client.ID, _clients.Count)); }); }
private void DataReceived(DataReceiver sender, byte[] data) { mf.Invoke((MethodInvoker) delegate { object dataObject = Deserialize(data); Client senderClient = ClientWithID(sender.ID); if (dataObject is LoginPacket) { VerifyLogin(senderClient, dataObject as LoginPacket); } if (dataObject is CreateChatRoomRequestPacket) { CreateChatRoom(dataObject as CreateChatRoomRequestPacket); } if (dataObject is ChatMessagePacket) { ChatMessageReceived(dataObject as ChatMessagePacket); } if (dataObject is GameLobbyUpdatePacket) { GameLobbyUpdate(dataObject as GameLobbyUpdatePacket); } }); }