Microsoft.Protocols.TestTools.StackSdk.RemoteDesktop.Rdpeudp.RdpeudpSocket.ExpectACKPacket C# (CSharp) Method

ExpectACKPacket() public method

Expect an ACK packet
public ExpectACKPacket ( System.TimeSpan timeout ) : RdpeudpPacket
timeout System.TimeSpan
return RdpeudpPacket
        public RdpeudpPacket ExpectACKPacket(TimeSpan timeout)
        {
            DateTime endtime = DateTime.Now + timeout;
            while (DateTime.Now < endtime)
            {
                lock (unProcessedPacketBuffer)
                {
                    for (int i = 0; i < unProcessedPacketBuffer.Count; i++)
                    {
                        RdpeudpPacket eudpPacket = unProcessedPacketBuffer[i];
                        if (eudpPacket.fecHeader.uFlags.HasFlag(RDPUDP_FLAG.RDPUDP_FLAG_ACK))
                        {
                            if (!Connected || (eudpPacket.ackVectorHeader.HasValue && eudpPacket.ackVectorHeader.Value.uAckVectorSize > 0))
                            {
                                unProcessedPacketBuffer.RemoveAt(i);
                                return eudpPacket;
                            }
                        }
                    }
                }
            }
            return null;
        }