Exemplo n.º 1
0
        /// <summary>
        /// Shuts down all sockets and marks this session as <see cref="Disposed"/>=true.
        /// </summary>
        public void Close()
        {
            try { ClientSocket.Close(); }
            catch { }

            try { ExtensionSocket.Close(); }
            catch { }

            if (Closed != null)
            {
                Closed(this, new EventArgs());
            }
            Disposed = true;
        }
Exemplo n.º 2
0
        private void Monitor()
        {
            if (SessionStarted != null)
            {
                SessionStarted(this, new EventArgs());
            }

            ClientSocketAsyncEventArgs = new SocketAsyncEventArgs();
            ClientSocketAsyncEventArgs.SetBuffer(new byte[1024], 0, 1024);
            ClientSocketAsyncEventArgs.Completed     += new EventHandler <SocketAsyncEventArgs>(ClientSocketAsyncReceive_Completed);
            ClientSocketAsyncEventArgs.UserToken      = new AsyncUserToken(ClientSocket);
            ClientSocketAsyncEventArgs.RemoteEndPoint = ClientSocket.RemoteEndPoint;
            ClientSocket.ReceiveAsync(ClientSocketAsyncEventArgs);

            ExtensionSocketAsyncEventArgs = new SocketAsyncEventArgs();
            ExtensionSocketAsyncEventArgs.SetBuffer(new byte[1024], 0, 1024);
            ExtensionSocketAsyncEventArgs.Completed     += new EventHandler <SocketAsyncEventArgs>(ExtensionSocketAsyncReceive_Completed);
            ExtensionSocketAsyncEventArgs.UserToken      = new AsyncUserToken(ExtensionSocket);
            ExtensionSocketAsyncEventArgs.RemoteEndPoint = ClientSocket.RemoteEndPoint;
            ExtensionSocket.ReceiveAsync(ExtensionSocketAsyncEventArgs);
        }