最近新做了个基于IOCP的SERVER,很奇怪的是在内网压力测试下,vista和XP操作系统,SERVER可以支持的并发连接洪水攻击超过3000个client,但是就在WINDOWS2003SERVER操作系统下,在client还没有达到200个的洪水攻击就挂掉了,死机了,我一开始以为是该操作系统的安装或配置问题,于是又找了另外一台机器,也是WIN2003,竟然产生一样的结果,不知道什么问题?难道WIN2003还有什么SOCKET限制或是别的什么?我可以排除程序代码的问题,因为毕竟代码是一样的,请了解的大虾们指点一二!不胜感激,谢谢。

解决方案 »

  1.   

    socket资源没有释放,比如端口没有释放???
      

  2.   

    死锁了,然后把CPU耗尽了吧?
      

  3.   

    很奇怪的是代码都是一样的,既没改动什么,也没有重新Build过,而是直接拷贝到WIN2003下进行的测试,我怀疑跟网络有点关系,又找不出有什么问题,难道是WIN2003系统有什么负载限制?郁闷。
      

  4.   

    我们经过了洪水>23000的客户端冲击,windows2000server依然稳定.我们的windows2000server是正版的,你们应该是D版的,不知道这有没有关系?
      

  5.   

    终于找到毛病所在了,查看网络包的记录,发现服务器总是丢包,客户端接收数据包的时候一卡一卡的,2000->0,0->2000这样的,但只找到了半个,确实和操作系统有关系,我测试的两台WIN2003操作系统均被公司管理人员做了最大限度的安全设置,删除没有用的文件啊,权限管理啊,等等,至于做了哪些安全设置管理人员早忘干净了,所以做压力测试时才会死机,但这只是个推测,也可能是这份盗版操作系统本身的问题,比如少什么文件啊之类的,哪些东西配置不对啊,等等,于是我自己找了本地电脑,重装我自己下载的WIN2003系统,问题全部解决了,压力测试算是解决了,但要命的是还得将IOCP程序放到服务器上才行,服务器上的操作系统也犯这个问题,服务器可是在外地,几千里外,重装系统麻烦的很,我想问问大家,你们觉得剩下那半个问题在哪里?也就是究竟由什么讨厌的东西引起的,我想尽量不要重装远程服务器的操作系统,能修就修一下,所以还得找出那半个问题,大家帮忙想象,可能由什么东西引起,再次感谢!已排除中毒的可能!