Ejemplo n.º 1
0
        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;
            }
        }
Ejemplo n.º 2
0
 public NetworkStream(ZeroTier.Sockets.Socket socket, FileAccess accessMode)
 {
     if (socket == null)
     {
         throw new ArgumentNullException("socket");
     }
     InitNetworkStream(socket, accessMode);
 }
Ejemplo n.º 3
0
 public NetworkStream(ZeroTier.Sockets.Socket socket, bool ownsSocket)
 {
     if (socket == null)
     {
         throw new ArgumentNullException("socket");
     }
     InitNetworkStream(socket, FileAccess.ReadWrite);
     _ownsSocket = ownsSocket;
 }
Ejemplo n.º 4
0
 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;
 }