读书人

socket的连接数有限制吗?该怎么解决

发布时间: 2012-09-07 10:38:15 作者: rapoo

socket的连接数有限制吗?
我有很多设备,目前36台,都是socket通讯。
我的主机(WINDWOS7)开启了36个线程去分别连这些设备,然后读取数据,因为需要随时更新,所以需要保持连接,我发现一开始连接状况还好,但是过一段时间(10分钟左右)就会频繁出现掉线需要重新连接设备的情况,最后稳定下来连接好的大概是12台左右。其余的设备如果单独连接,也还正常。
所以我猜测是否有socket作为客户端去连接服务器有连接数的限制?

[解决办法]
这个没有的,可能是你其他异常,查查你的线程有没有问题,36个,也不算多
[解决办法]
可能会是句柄泄漏, 用工具(任务管理器)查看进程的句柄数是否正常
[解决办法]
单机的一个进程的TCP连接数是有限的。
看http://www.cnblogs.com/eaglet/archive/2010/09/21/1832233.html
有说明和解决方法,可以试试。
我一般是做一个主程序,挂多个子进程通信的。
[解决办法]
36个一般系统还是可以支持的,可以查看一下你的代码估计什么地方没有处理好
[解决办法]
win7? 默认最大连接数好像是65535.

看你的描述感觉应该是系统资源泄漏了。像2L说的看一下句柄把
[解决办法]
理论上支持65535。你可以从这个方面去查:1、网络防火墙SESSION过期,把连接断开。2、程序异常引起。

[解决办法]
可能是接收的线程退出了
[解决办法]
也没有必要开这么多线程吧。找个合适的网络模型
理论最大 0xFFFF
[解决办法]
没有限制的
[解决办法]
有没有可能是阻塞了呢,然后超时,连接就断了,或者在等待同一个资源
[解决办法]
多线程编程要考虑的问题比较多,全局变量的互斥访问,共享数据区等,看看你有没有多个线程访问同一个数据发生冲突的。
另外看看申请的内存和使用的内核对象有没有释放,系统可以使用的内核对象的个数也是有限制的。
[解决办法]
对于一个没开过这么多线程的人来说,36是个很大的数字
[解决办法]
我说的是我,大家别误会
[解决办法]
先要弄清楚为啥会频繁掉线?

读书人网 >VC/MFC

热点推荐