示例#1
0
文件: Server.cs 项目: slawer/asy
        /// <summary>
        /// Инициализирует новый экземпляр класса
        /// </summary>
        /// <param name="numConnections">Максимально возможное количество подключенных клиентов</param>
        /// <param name="receiveBufferSize">Размер буфера выделяемый для каждого подключенного клиента для приема данных от данного клиента</param>
        public TcpServer(int numConnections, int receiveBufferSize)
        {
            m_totalBytesRead = 0;
            m_numConnectedSockets = 0;

            m_numConnections = numConnections;
            m_receiveBufferSize = receiveBufferSize;

            m_memory = new Heap(m_numConnections * m_receiveBufferSize * optToPreAlloc,
                m_receiveBufferSize);

            m_asyncEventsPool = new SocketAsyncEventArgsPool(m_numConnections);
            m_maxNumberAcceptedClients = new Semaphore(m_numConnections, m_numConnections);

            m_openSockets = new List<Socket>();
            InitServer();
        }