private static void OnConnect(string data, MemoryClient client) { Console.WriteLine(client.ID + " connected."); if (!MemoryServer.clients.ContainsKey(client.ID)) { MemoryServer.clients.Add(client.ID, client); MemoryServer.UpdateStatistics(); } }
private static void OnDisconnect(string data, MemoryClient client) { Console.WriteLine(client.ID + " disconnected."); if (MemoryServer.clients.ContainsKey(client.ID)) { MemoryServer.clients.Remove(client.ID); MemoryServer.UpdateStatistics(); } }
private static void OnPacketReceived(IAsyncResult ar) { IPEndPoint clientEP = new IPEndPoint(IPAddress.Any, 0); byte[] receivedBytes = socket.EndReceive(ar, ref clientEP); MemoryClient client = new MemoryClient(clientEP); PacketHandler.HandlePacket(receivedBytes, client); socket.BeginReceive(OnPacketReceived, null); }
public static void HandlePacket(byte[] receivedBytes, MemoryClient client) { string data = Encoding.ASCII.GetString(receivedBytes); string command = data.Substring(0, 3); switch (command) { case "000": OnConnect(data, client); break; case "001": OnDisconnect(data, client); break; } }