/// <summary> /// Reads COTP TPDU (Transport protocol data unit) from the network stream /// See: https://tools.ietf.org/html/rfc905 /// </summary> /// <param name="stream">The socket to read from</param> /// <returns>COTP DPDU instance</returns> public static async Task <TPDU> ReadAsync(Stream stream, CancellationToken cancellationToken) { var tpkt = await TPKT.ReadAsync(stream, cancellationToken).ConfigureAwait(false); if (tpkt.Length == 0) { throw new TPDUInvalidException("No protocol data received"); } return(new TPDU(tpkt)); }
/// <summary> /// Reads COTP TPDU (Transport protocol data unit) from the network stream /// See: https://tools.ietf.org/html/rfc905 /// </summary> /// <param name="stream">The socket to read from</param> /// <returns>COTP DPDU instance</returns> public static async Task <TPDU> ReadAsync(Stream stream) { var tpkt = await TPKT.ReadAsync(stream); if (tpkt.Length > 0) { return(new TPDU(tpkt)); } return(null); }
/// <summary> /// Reads COTP TPDU (Transport protocol data unit) from the network stream /// See: https://tools.ietf.org/html/rfc905 /// </summary> /// <param name="stream">The socket to read from</param> /// <returns>COTP DPDU instance</returns> public static async Task <TPDU> ReadAsync(Stream stream) { var tpkt = await TPKT.ReadAsync(stream); if (tpkt.Length == 0) { throw new TPDUInvalidException("No protocol data received"); } return(new TPDU(tpkt)); }