示例#1
0
 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));
 }
示例#2
0
 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);
 }
示例#3
0
 private ClientSocketAsyncEventArgs CreateNewSaeaForAccept(SocketAsyncEventArgsPool pool)
 {
     var acceptEventArg = new ClientSocketAsyncEventArgs();
     acceptEventArg.Completed += AcceptEventArg_Completed;
     pool.Push(acceptEventArg);
     return acceptEventArg;
 }