// 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*/); }
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)); }
internal int registerSocket(TcpClient acceptedclient, AsyncSocket prototype) { AsyncNetService selected = NetServices[CurrentId]; int ret = selected.RegisterSocket(acceptedclient, prototype); if (MaxCount < ++CurrentId) { CurrentId = 1; } return(ret); }