private void ProcessDisconnect(SocketAsyncEventArgs e) { SocketClient client = e.UserToken as SocketClient; try { client.Socket.Shutdown(SocketShutdown.Send); } catch (Exception) { } client.Socket.Close(); readWritePool.Push(e); }
public SocketServer() { readWritePool = new SocketAsyncEventArgsPool(Constants.MaxConnections); SocketAsyncEventArgs readWriteEventArg; for (int i = 0; i < Constants.MaxConnections; i++) { readWriteEventArg = new SocketAsyncEventArgs(); readWriteEventArg.Completed += new EventHandler<SocketAsyncEventArgs>(IO_Completed); readWriteEventArg.SetBuffer(new byte[Constants.BufferSize], 0, Constants.BufferSize); readWriteEventArg.UserToken = new SocketClient(); readWritePool.Push(readWriteEventArg); } }
public SocketServer() { readWritePool = new SocketAsyncEventArgsPool(Constants.MaxConnections); SocketAsyncEventArgs readWriteEventArg; for (int i = 0; i < Constants.MaxConnections; i++) { readWriteEventArg = new SocketAsyncEventArgs(); readWriteEventArg.Completed += new EventHandler <SocketAsyncEventArgs>(IO_Completed); readWriteEventArg.SetBuffer(new byte[Constants.BufferSize], 0, Constants.BufferSize); readWriteEventArg.UserToken = new SocketClient(); readWritePool.Push(readWriteEventArg); } }