利用asio实现了一个服务器,多个客户端连接,并异常断开连接,发现后面再也连接不上服务器了,不能建立新连接了。原因分析
来源:互联网 发布:win7电脑打不开软件 编辑:程序博客网 时间:2024/06/05 23:53
最近利用Boost::asio实现了一个服务器,测试过程中发现大量客户端连接服务器,然后客户端异常断开之后,已经连接的客户端能正常工作,但是却不能建立新的客户端连接了。
原因分析:
使用netstat -nlpt 查看分析
发现服务器监听端口正常
netstat -ap查看已经建立的连接数量
发现该服务器存在大量的close_waiting和last_ack的状态的半连接,甚至已经达到了进程限制的最大连接数(默认使用的1024个),
发现应该是由于半连接占用大量的连接资源,从而引起资源不足导致的连接失败。
解决办法:
在调用socket.close()方法之前,先调用acceptor.shutdown()方法主动关闭这个半连接。
保证服务器一定会释放连接。
阅读全文
0 0
- 利用asio实现了一个服务器,多个客户端连接,并异常断开连接,发现后面再也连接不上服务器了,不能建立新连接了。原因分析
- socket实现多个客户端连接在一个服务器上
- 客户端连接不上服务器
- 服务器主动断开连接异常
- 如测试连接后的SOCKET是否还连在服务器上,是否断开了。
- LOL链接不上服务器重装了还是显示连接不上服务器,可能的解决办法
- UNIX网络编程----多进程并发服务器(这样就支持多个客户端连接了)
- 连接不上服务器
- SecureCRT连接服务器断开连接
- 关于客户端断开连接后服务器抛出异常Connection reset
- Windows客户端连接不上Linux服务器
- Android客户端连接Struts2服务器,连接不上的几个原因
- 连接与断开服务器
- java 模拟多个客户端与服务器建立UDP连接
- JAVA Socket服务器 判断客户端连接断开
- Socket服务器 判断客户端连接断开
- MYSQL客户端连接和断开MySQL服务器
- Xshell连接不上虚拟机提示ssh服务器拒绝了密码,请再试一次
- mAP
- Python--os模块
- 数据库新动向 Oracle 与微软割据局面产生
- 写一个老是忘记的linux进程pid是哪个?
- 请移步新博客
- 利用asio实现了一个服务器,多个客户端连接,并异常断开连接,发现后面再也连接不上服务器了,不能建立新连接了。原因分析
- linux实验四
- python---之np.newaxis
- hdu 4803 Poor Warehouse Keeper(贪心)
- 玩一玩STM32f103c8t6接SIM900a去连接MQTT服务器(一)免费的MQTT
- 链式栈:从头节点插入和删除
- fabric源码解析22——Orderer服务的初始化
- Java开发快递物流项目(2)
- Hbase入门