Ejemplo n.º 1
0
        /// <summary>
        /// 初始化基本设置信息
        /// </summary>
        private void Init(int maxConnectionCount)
        {
            _asyncReceive = new AsyncReceive(EventManager);
            _asyncAccept  = new AsyncAccept(_asyncReceive, EventManager);
            //初始化配置项
            ConfigData.MaxClientCount = maxConnectionCount;

            ConfigData.UserTokenPool      = new SocketAsyncEventArgsPool(ConfigData.MaxClientCount);
            ConfigData.MaxAcceptedClients = new System.Threading.Semaphore(ConfigData.MaxClientCount, ConfigData.MaxClientCount);
            //
            AsyncUserToken userToken;

            for (int i = 0; i < ConfigData.MaxClientCount; i++)
            {
                userToken = new AsyncUserToken(ConfigData.BufferSize);
                userToken.ReceiveEventArgs.Completed += new EventHandler <SocketAsyncEventArgs>(_asyncReceive.OnIOCompleted);
                userToken.SendEventArgs.Completed    += new EventHandler <SocketAsyncEventArgs>(AsyncSend.OnIOCompleted);
                ConfigData.UserTokenPool.Push(userToken);
            }
        }
Ejemplo n.º 2
0
 public AsyncAccept(AsyncReceive asyncReceive, EventManager eventManager)
 {
     _asyncReceive = asyncReceive;
     _eventManager = eventManager;
 }