internal void InitNetworkStream(ZeroTier.Sockets.Socket socket, FileAccess accessMode) { if (!socket.Connected) { throw new IOException("ZeroTier socket must be connected"); } if (!socket.Blocking) { throw new IOException("ZeroTier socket must be in blocking mode"); } if (socket.SocketType != SocketType.Stream) { throw new IOException("ZeroTier socket must by stream type"); } _streamSocket = socket; switch (accessMode) { case FileAccess.Write: _isWriteable = true; break; case FileAccess.Read: _isReadable = true; break; case FileAccess.ReadWrite: default: _isReadable = true; _isWriteable = true; break; } }
public NetworkStream(ZeroTier.Sockets.Socket socket, FileAccess accessMode) { if (socket == null) { throw new ArgumentNullException("socket"); } InitNetworkStream(socket, accessMode); }
public NetworkStream(ZeroTier.Sockets.Socket socket, bool ownsSocket) { if (socket == null) { throw new ArgumentNullException("socket"); } InitNetworkStream(socket, FileAccess.ReadWrite); _ownsSocket = ownsSocket; }
internal NetworkStream(NetworkStream networkStream, bool ownsSocket) { ZeroTier.Sockets.Socket socket = networkStream.Socket; if (socket == null) { throw new ArgumentNullException("networkStream"); } InitNetworkStream(socket, FileAccess.ReadWrite); _ownsSocket = ownsSocket; }