65000个有效连接的IOCP封装类

关于这个类的几点总结:

1.发送数据最大限制在MTU之类

2.使用PreAllocate,分配内存时,同时为每片内存附加一个小结构体,指明该内存是否被使用,在析构时,只是设定为未使用,以使内存复用

3.在Server端启动之前,先准备内存,并使用AcceptEx,缓冲大小设为0

4.将数据的接收和处理分开在不同的线程处理

5.

DWORD WINAPI WorkerThreadDummy(LPVOID pParam)
{
((OThreadParam *)pParam)->pIOCPNet->WorkerThread(((OThreadParam *)pParam)->hEvent);
return 0;
} // WorkerThreadDummy()

用这种方式处理线程免得处理函数需要用到成员变量的地方都加一个pThis->

6.发送数据时,Post一个通知,然后在IO线程里循环逐段发送

你可能感兴趣的:(65000个有效连接的IOCP封装类)