tcp服务端过段时间拒绝所有客户端连接
@伤神小怪兽 你好啊,想跟你请教个问题:我在使用hpsocket tcp pull 5.2.1.2版本 tcp poll的服务端跑几天后,服务端拒绝所有客户端连接,telnet本地端口也不通,没有有time_wait等,在拒绝客户端连接后,之前连接的上千个连接还能正常的收发,只是不能有新的客户端连接。随着客户端慢慢自动断开,最终一个客户端连接也没有了。此时依然不允许新的客户端连接。。不知道是不是客户端发的数据量大导致的问题。请问你有遇到过这种 情况吗?
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(8)
谢谢大家,问题已经找到了。是我不小心自己closesocket()本来不该调用的,导致调用三方库,三方库IOCP内部关闭连接api时候,三方库内部应该是释放出错,资源泄漏没有彻底释放资源限制连接了。
先升级到最新版试试
我前几天帮朋友解决一tcp 并发问题, 写了一个测试代码, 就是只做连接,不做业务处理, 连接数正常, 加入业务代码就不能正常使用, 程序里有 redis 交互 与 rabbitmq 后面一步步的确认最后是 rabbitmq 服务器阻塞了IO, 所以可以从 数据库等其它方向下手
检查下进程句柄数是不是已经达到了最大限度。
没有哦,这IOCP库的上限是1万个客户端。最多就连接了3千多。
是不是到tcp连接上限了.
锁也检查过了,没有问题。检查过了,进程正常跑着。端口在监听,只是假死掉了。三次握手抓包是tcp服务端拒绝连接。客户端连接几百个也没发生过这情况。当有三四千个连接跑几天就发生这情况了。而且发生异常的时候,已经连接的客户端还是可以正常通信的,就是不允许新的客户端接入了。
检查程序里面的锁 还是进程是否已退出