TCP频繁地连接、断开时出现的问题。

footway 2002-02-02 12:41:06
socket( ), bind( ), connect( ), send( ), recv( ), closesocket( )这几个函数快速地循环调用,让TCP建立一个连接,然后断开,又建立,又断开……,不断地循环。一般情况下这样一个过程很快完成。但有时候socket( )或者bind( )的调用很久都不能返回,而且很久以后能够成功地返回。用netstat -a查看,发现有好几个连接处于TIME_WAIT状态。但是事实上我始终打开一个socket,建立一个连接。为什么?
...全文
721 5 打赏 收藏 转发到动态 举报
写回复
用AI写文章
5 条回复
切换为时间正序
请发表友善的回复…
发表回复
wizardxd 2002-02-02
  • 打赏
  • 举报
回复
这样效率会很低~
而且很多连接有可能引起资源的争用,就安全性来说也不好~
为什么不使用一个连接呢?
如果有多个连接的话,也可以使用select实现状态的轮询~
abraxas 2002-02-02
  • 打赏
  • 举报
回复
每次connect都会产生一个socket,关闭连接后,该socket不是马上恢复成Close,而是要经过2MSL超时后才能变为CLOSED状态
footway 2002-02-02
  • 打赏
  • 举报
回复
我测试我的TCP服务器的稳定性,快速地上下线,看他能不能受得了!
Kevinwen 2002-02-02
  • 打赏
  • 举报
回复
你是不是在试图进行DOS攻击呢?即使是的话, 你写程序的思路也是不对的。
Kevinwen 2002-02-02
  • 打赏
  • 举报
回复
你在干嘛?测试系统的资源还是系统容量?每建一个socket都要耗费一定的系统资源的,当现在存在的socket数目超过系统的限制的话就不可以建立新的了,你当然可以把系统的限制加大,但是可能造成系统崩溃就是了。

4,358

社区成员

发帖
与我相关
我的任务
社区描述
通信技术相关讨论
社区管理员
  • 网络通信
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

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