/// <summary> /// Send SYN and ACK packet. /// </summary> /// <param name="udpTransportMode">Transport mode: Reliable or Lossy</param> /// <param name="invalidType">invalid type</param> public void SendSynAndAckPacket(TransportMode udpTransportMode, SynAndAck_InvalidType invalidType, uint? initSequenceNumber = null, uUdpVer_Values? uUdpVer = null) { RdpeudpServerSocket rdpeudpSocket = rdpeudpSocketR; if (udpTransportMode == TransportMode.Lossy) { rdpeudpSocket = rdpeudpSocketL; } if (invalidType == SynAndAck_InvalidType.None) { // If invalid type is None, send the packet directly. rdpeudpSocket.SendSynAndAckPacket(initSequenceNumber, uUdpVer); return; } // Create the SYN and ACK packet first. RdpeudpPacket SynAndAckPacket = CreateInvalidSynAndACKPacket(udpTransportMode, invalidType, initSequenceNumber); rdpeudpSocket.SendPacket(SynAndAckPacket); }