Microsoft.Protocols.TestTools.StackSdk.RemoteDesktop.Rdpeudp.RdpeudpServerSocket.ExpectConnect C# (CSharp) Method

ExpectConnect() public method

Expect a RDPEUDP Connection
public ExpectConnect ( System.TimeSpan timeout ) : bool
timeout System.TimeSpan
return bool
        public bool ExpectConnect(TimeSpan timeout)
        {
            DateTime endtime = DateTime.Now + timeout;
            RdpeudpPacket eudpPacket;
            eudpPacket = ExpectSynPacket(timeout);
            // Verify SYN Packet
            if (eudpPacket == null)
            {
                return false;
            }

            SendSynAndAckPacket();

            eudpPacket = ExpectACKPacket(endtime - DateTime.Now);
            // Verify the ACK Packet
            if (eudpPacket == null || eudpPacket.fecHeader.snSourceAck != SnInitialSequenceNumber)
            {
                return false;
            }

            // If the ACK packet contains source data, process it again after connected is true
            if (eudpPacket.fecHeader.uFlags.HasFlag(RDPUDP_FLAG.RDPUDP_FLAG_DATA))
            {
                ReceivePacket(eudpPacket);
            }

            // Connection has been established
            Connected = true;

            return true;
        }

Usage Example

Exemplo n.º 1
0
        public RdpeudpServerSocket Accept(IPAddress remoteIP, TransportMode mode, TimeSpan timeout)
        {
            DateTime            endTime      = DateTime.Now + timeout;
            RdpeudpServerSocket serverSocket = this.CreateSocket(remoteIP, mode, timeout);

            if (serverSocket == null)
            {
                return(null);
            }

            if (serverSocket.ExpectConnect(endTime - DateTime.Now))
            {
                return(serverSocket);
            }
            else
            {
                serverSocketDic.Remove(serverSocket.RemoteEndPoint);
            }

            return(null);
        }