Exemple #1
0
        // io * maxconnect * multiple 만큼 버퍼가 할당됩니다.
        public AsyncIOManager(int cnt, INetworkReceiver receiver, int io, int maxconnect, int multiple)
        {
            if (Min_NetContainer > cnt)
            {
                cnt = Min_NetContainer;
            }

            if (Max_NetContainer < cnt)
            {
                cnt = Max_NetContainer;
            }

            MaxCount    = cnt;
            theReceiver = receiver;

            for (long index = 1; index <= MaxCount; index++)
            {
                AsyncNetService theone = new AsyncNetService(theReceiver, this);
                theone.idx = index;
                NetServices.Add(index, theone);
            }

            CurrentId = 1;

            IOSize        = io;
            IOFrameMax    = maxconnect * multiple;
            BufferManager = new BufferManager(IOSize * IOFrameMax, IOSize);
            BufferManager.InitBuffer();
            EventArgsPool = new SocketAsyncEventArgsPool(/*ioframemax*/);
        }
Exemple #2
0
        public int connectSocket(int reqID, AsyncSocket socket, string ipaddress, int port)
        {
            long            sel      = 1;
            AsyncNetService selected = NetServices[sel];

            return(selected.ConnectSocket(reqID, socket, ipaddress, port));
        }
Exemple #3
0
        internal int registerSocket(TcpClient acceptedclient, AsyncSocket prototype)
        {
            AsyncNetService selected = NetServices[CurrentId];

            int ret = selected.RegisterSocket(acceptedclient, prototype);

            if (MaxCount < ++CurrentId)
            {
                CurrentId = 1;
            }

            return(ret);
        }