/// <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; }
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); }