public NetworkBinaryStream(Socket socket, int timeout = -1, WorkerThreadSynchronization workerThreadSynchronization = null) : base(new NetworkStream(socket), workerThreadSynchronization) { if (!BitConverter.IsLittleEndian) throw new Exception("BigEndian processors are not supported"); m_socket = socket; Timeout = timeout; m_socket.SetSocketOption(SocketOptionLevel.Tcp, SocketOptionName.NoDelay, true); }
/// <summary> /// Creates a <see cref="RemoteBinaryStream"/> /// </summary> /// <param name="stream">the underlying stream to wrap</param> /// <param name="workerThreadSynchronization">the synchronization object</param> public RemoteBinaryStream(Stream stream, WorkerThreadSynchronization workerThreadSynchronization = null) { if (!BitConverter.IsLittleEndian) throw new Exception("BigEndian processors are not supported"); if (workerThreadSynchronization == null) workerThreadSynchronization = new WorkerThreadSynchronization(); m_workerThreadSynchronization = workerThreadSynchronization; m_receiveBuffer = new byte[BufferSize]; m_sendBuffer = new byte[BufferSize]; m_sendLength = 0; m_receiveLength = 0; m_receivePosition = 0; m_stream = stream; }