socket的连接数有限制吗?

zpingy 2012-07-25 12:54:27
我有很多设备,目前36台,都是socket通讯。
我的主机(WINDWOS7)开启了36个线程去分别连这些设备,然后读取数据,因为需要随时更新,所以需要保持连接,我发现一开始连接状况还好,但是过一段时间(10分钟左右)就会频繁出现掉线需要重新连接设备的情况,最后稳定下来连接好的大概是12台左右。其余的设备如果单独连接,也还正常。
所以我猜测是否有socket作为客户端去连接服务器有连接数的限制?
...全文
982 15 打赏 收藏 转发到动态 举报
写回复
用AI写文章
15 条回复
切换为时间正序
请发表友善的回复…
发表回复
zpingy 2012-07-29
  • 打赏
  • 举报
回复
多谢大家,没有限制就是别的原因
Eleven 2012-07-26
  • 打赏
  • 举报
回复
先要弄清楚为啥会频繁掉线?
jackfrank078 2012-07-26
  • 打赏
  • 举报
回复
我说的是我,大家别误会
jackfrank078 2012-07-26
  • 打赏
  • 举报
回复
对于一个没开过这么多线程的人来说,36是个很大的数字
Jiao319 2012-07-26
  • 打赏
  • 举报
回复
多线程编程要考虑的问题比较多,全局变量的互斥访问,共享数据区等,看看你有没有多个线程访问同一个数据发生冲突的。
另外看看申请的内存和使用的内核对象有没有释放,系统可以使用的内核对象的个数也是有限制的。
淡定的飘着 2012-07-25
  • 打赏
  • 举报
回复
有没有可能是阻塞了呢,然后超时,连接就断了,或者在等待同一个资源
贪玩的老鼠 2012-07-25
  • 打赏
  • 举报
回复
没有限制的
这不是鸭头 2012-07-25
  • 打赏
  • 举报
回复
也没有必要开这么多线程吧。找个合适的网络模型
理论最大 0xFFFF
jokers_i 2012-07-25
  • 打赏
  • 举报
回复
可能是接收的线程退出了
畅想畅享 2012-07-25
  • 打赏
  • 举报
回复
理论上支持65535。你可以从这个方面去查:1、网络防火墙SESSION过期,把连接断开。2、程序异常引起。
zhanshen2891 2012-07-25
  • 打赏
  • 举报
回复
win7? 默认最大连接数好像是65535.

看你的描述感觉应该是系统资源泄漏了。像2L说的看一下句柄把
oyljerry 2012-07-25
  • 打赏
  • 举报
回复
36个一般系统还是可以支持的,可以查看一下你的代码估计什么地方没有处理好
baoyz 2012-07-25
  • 打赏
  • 举报
回复
单机的一个进程的TCP连接数是有限的。
看http://www.cnblogs.com/eaglet/archive/2010/09/21/1832233.html
有说明和解决方法,可以试试。
我一般是做一个主程序,挂多个子进程通信的。
Yofoo 2012-07-25
  • 打赏
  • 举报
回复
可能会是句柄泄漏, 用工具(任务管理器)查看进程的句柄数是否正常
MingoJ 2012-07-25
  • 打赏
  • 举报
回复
这个没有的,可能是你其他异常,查查你的线程有没有问题,36个,也不算多

18,356

社区成员

发帖
与我相关
我的任务
社区描述
VC/MFC 网络编程
c++c语言开发语言 技术论坛(原bbs)
社区管理员
  • 网络编程
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧