解决方案 »
- VC通过DAO向已有ACCESS数据库添加新字段
- 使用 . .. 如何描述当前路径?
- 夜风微凉兄,请进!
- 窗口注册
- 散分
- 100求教考试题目。明天交。谢谢!!!!!!!!!!!!!!!
- 我用两点求出一直线方程,在确定其他的点,然后画线,为什么不是直线?是精度问题,还是???高手指点[在线等待]
- 刻盘总是刻坏,提示You cant close this CD to ISO 9660 !用的Easy CD Creator 502!
- 什么是例外呢
- 哪位使用过那种SourceInsight的软件,有没有中文的使用说明?或者给我详细说说使用的方法!分数会更多!
- 请问高手 在使用双缓冲的情况下,如何绘制动态曲线
- 使用GetSaveFileName()函数,进程不能退出
单一的TCP或者UDP的socket能分配的总数65535个
我测试过:p4 1.7 512内存,使用IOCP模型,每隔1s进行一次数据交换,上到3W多都很正常。
2.IOCP的设计
3.业务逻辑设计一般的数据中转服务,没有多少业务逻辑的话,几W应该也不是问题
1.accept()或AcceptEx(),每接收一个连接,要占用1.5k左右的非分页内存池内存
2.任何一个默认的WSASend()或WSARecv(),至少锁上4KB或以上非分页内存池内存假设你操作系统的驱动和其它必须软件占用了50MB的非分页内存池内存,那剩下了200MB非分页内存池,再假设你的程序只是接收连接,不做任何 WSASend(),WSARecv()或向外连接的操作,那么你的IOCP服务器最大可接收的连接为:200MB * 1024 KB/MB / 1.5 KB = 136533个连接。但如果你的IOCP服务器是向外做TCP连接的话,那么每个connect()要用2KB左右非分页内存池内存,而且还要受限于系统可分配的TCP端口总数(65535)如果操作系统是64位的windows,如果物理内存很大的话,非分页内存池是比32位操作系统的要大很多.32位系统的最大非分页内存池只能到256MB,而64位系统的最大非分页内存池可以到达可怕的128GB.那如果IOCP服务器是运行在64位的windows下(XP以后的操作系统),那可以支持的并发连接,是随便能超过10多W的。
具体可以查看以下连接(英文的):
http://blogs.technet.com/b/russinovich/archive/2009/03/26/3211216.aspx
http://yaocoder.blog.51cto.com/2668309/1312821