/// <summary> /// Constructor /// </summary> /// <param name="eudpSocket">A RdpeudpSocket used for transport</param> public RdpeudpTLSChannel(RdpeudpSocket eudpSocket) { if (eudpSocket == null || eudpSocket.TransMode == TransportMode.Lossy) { throw new NotSupportedException("RdpeudpSocket is null or it is a socket for Lossy RDPEUDP connection."); } this.rdpeudpSocket = eudpSocket; this.rdpeudpSocket.Received += ReceiveBytes; innerStream = new SSLInnerStream(); isAuthenticated = false; if (eudpSocket.AutoHandle) { // Check whether there is packets in unprocessed packet buffer RdpeudpPacket packet = eudpSocket.ExpectPacket(shortWaitTime); if (packet != null) { eudpSocket.ReceivePacket(packet); } } }