コード例 #1
0
        /// <summary>
        /// Serialization constructor
        /// </summary>
        /// <param name="data">The request payload data</param>
        /// <param name="sender">The remote client ip/port</param>
        public ConnectRequest(byte[] data, IPEndPoint sender)
        {
            base.Deserialize(data);

            // get the remote IP address and port
            var addr = sender.Address.ToString() + ":" + sender.Port;

            Console.WriteLine("Connection request from " + addr);

            // reserve slot for client
            // TODO: free slot if no pingback within X seconds
            var client = new Connection(sender);

            AddClient(addr, client);

            // headers can be spoofed, so to verify the ip address
            // contained in the header, we must send a challenge request
            var pingRequest = new PingRequest();

            client.Challenge = pingRequest.Random;

            Response = pingRequest;
        }
コード例 #2
0
ファイル: PingResponse.cs プロジェクト: gmriggs/ACE.Diag
        /// <summary>
        /// Constructs a ping response from a ping request
        /// </summary>
        public PingResponse(PingRequest request)
        {
            Type = PacketType.PingResponse;

            Verify = request.Random;
        }