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

Send() public method

Send Data from this specified UDP transport
public Send ( byte data ) : bool
data byte Data to send
return bool
        public bool Send(byte[] data)
        {
            if (!Connected) return false;
            List<byte> dataList = new List<byte>(data);
            int payloadLength = 0;
            byte[] packetData;
            RdpeudpPacket packet;
            do
            {
                packet = new RdpeudpPacket();                  // Fill in the common header.
                packet.fecHeader.snSourceAck = SnSourceAck;
                packet.fecHeader.uReceiveWindowSize = UReceiveWindowSize;
                packet.fecHeader.uFlags = RDPUDP_FLAG.RDPUDP_FLAG_DATA | RDPUDP_FLAG.RDPUDP_FLAG_ACK;
                packet.ackVectorHeader = CreateAckVectorHeader();

                packet.sourceHeader = CreateSourcePayloadHeader();  // Generate SourceHeader.

                packetData = PduMarshaler.Marshal(packet, false);      // Measure the header lenght to figure out payload length.
                payloadLength = Math.Min(UUpStreamMtu - packetData.Length, dataList.Count);

                packet.payload = new byte[payloadLength];
                dataList.CopyTo(0, packet.payload, 0, payloadLength);   // Copy the data in to packet payload.

                string str = System.Text.Encoding.ASCII.GetString(packet.payload);
                SendPacket(packet);
                dataList.RemoveRange(0, payloadLength);

            } while (dataList.Count > 0);

            return true;
        }