public override void Start(SocketServerSettings settings) { base.Start(settings); this._bufferManager = new BufferManager(this.Settings.BufferSize * this.Settings.NumberOfSaeaForReceiveSend * this.Settings.OpsToPreAllocate, this.Settings.BufferSize * this.Settings.OpsToPreAllocate); this._poolOfAcceptEventArgs = new SocketAsyncEventArgsPool(this.Settings.MaxAcceptOps); this._poolOfReceiveSendEventArgs = new SocketAsyncEventArgsPool(this.Settings.NumberOfSaeaForReceiveSend); Init(); StartListen(); Log(string.Format("Server started on {0}:{1}", settings.LocalEndPoint.Address, settings.LocalEndPoint.Port)); }
private void CreateNewSaeaForReceiveSend(SocketAsyncEventArgsPool poolOfReceiveSendEventArgs) { var eventArgObjectForPool = new ClientSocketAsyncEventArgs(); this._bufferManager.SetBuffer(eventArgObjectForPool); eventArgObjectForPool.Completed += IO_Completed; eventArgObjectForPool.BufferOffsetReceive = eventArgObjectForPool.Offset; eventArgObjectForPool.BufferOffsetSend = eventArgObjectForPool.Offset + this.Settings.BufferSize * this.Settings.OpsToPreAllocate / 2; poolOfReceiveSendEventArgs.Push(eventArgObjectForPool); }
private ClientSocketAsyncEventArgs CreateNewSaeaForAccept(SocketAsyncEventArgsPool pool) { var acceptEventArg = new ClientSocketAsyncEventArgs(); acceptEventArg.Completed += AcceptEventArg_Completed; pool.Push(acceptEventArg); return acceptEventArg; }