一个服务端,N个客户端。有些客户端发数据,有点客户端只是做下连接,使用的都是长连接。
现在问题是:通过防火墙接收这些客户端的请求时,TCP连接数不断的增长。导致我们的服务总是崩溃!!!有遇到的或者处理过的,给点建议。谢谢大家了。比较着急。!!!无法处理根本原因的,可以帮忙给我个解决方案建议。不慎感激。!!!!

解决方案 »

  1.   

    现在就是TCP连接数太多了,高手来哦如果有好的方案,再加20分,我的分不多。
      

  2.   

    先考虑下是不是客户端的问题,用TCPIP调试工具,看看是不是同一个客户端在一段时间内发了多个连接(之前的连接忘记关闭)。
    不知道你有没有用心跳包来检测长连接情况下客户是否真实在线,如果在已经建立的TCP连接过程中出现链路错误的话,如果通信双方没有用心跳包检测,在下次通信前,是检测不到对方已断线的。这种情况就有可能造成客户机已掉线,但服务器一直不知道,就有很多连接一直无法关闭。
    如果你已经用了心跳包,那就要检测下是否有恶意软件扫描端口,DDos攻击等。建议通信走下列程序:“连接成功后,检查该IP是否已达到最大错误请求次数,如果未达到则服务端不做任何事情,直至客户端在100MS内报告自己的令牌,服务端验证令牌。验证不成功,关闭连接,记录该IP的错误请求次数,当错误请求次数达到设置的最大值时,该IP一连接就关闭该连接。如果验证令牌成功,则将该IP的最大错误请求次数置零。”
    以上只是个人的观点,无现成代码。因为我现在只是做到了在局域网内通信的网络程序,还没设计到Internet。仅供参考,欢迎拍砖。