Example #1
0
        /// <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);
        }
Example #2
0
 internal EdtClient(ServerControl serverControl)
 {
     _conn         = serverControl.Conn;
     ServerControl = serverControl;
 }