/// <summary> /// Handle the ping packet sent from client and create ServerControl for new client. /// </summary> /// <param name="pingPacket"></param> /// <param name="clientIPEndPoint"></param> private void HandlePingPacket(PingPacket pingPacket, IPEndPoint clientIPEndPoint) { int clientId = pingPacket.ClientId; // Whether is a new client if (clientId == 0) { ServerControl serverControl = new ServerControl(Conn, clientIPEndPoint); EdtClient edtClient = new EdtClient(serverControl); clientId = serverControl.ClientId; EdtClients.Add(clientId, edtClient); Console.WriteLine("A Client connected in: {0} - {1}", clientId, clientIPEndPoint.ToString()); OnClientConnect?.Invoke(edtClient); } EdtClients[clientId].ServerControl.OnPing(pingPacket); }
internal EdtClient(ServerControl serverControl) { _conn = serverControl.Conn; ServerControl = serverControl; }