如何解决can't identify protocol的问题

search_you 2011-07-15 10:05:11
我写了一个EPOLL服务器,当客户端断开连接时已经关闭掉相应fd,用netstat -an查看已经没有连接,但是用lsof查看时会出现大量的can't identify protocol连接。不知道什么原因,如何解决?
...全文
1157 5 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
5 条回复
切换为时间正序
请发表友善的回复…
发表回复
lvyinghong 2011-07-21
  • 打赏
  • 举报
回复
[Quote=引用 4 楼 search_you 的回复:]

引用 3 楼 lvyinghong 的回复:
这个好像是,主动断开的tcp端,有个time-wait状态,需要等一段时间比如两分钟才能完全释放fd吧。

不知道是不是这个原因,如果是自己写测试程序,在同一个机器上搞很多连接可能会碰到这个问题

这个有办法解决吗?
[/Quote]


你搜索一下 tcp TIME_WAIT 就知道了,这个应该是没办法避免的,只能不要开那么多的在同一个机器上。人家实际应用都是分布在不同客户机机器上的。如果你的服务器端主动断开,TIME_WAIT 全部都在一台机器上,只能说把 TIME_WAIT 时间改小一点了。尽量避免服务器端的 TIME_WAIT吧
search_you 2011-07-19
  • 打赏
  • 举报
回复
[Quote=引用 3 楼 lvyinghong 的回复:]
这个好像是,主动断开的tcp端,有个time-wait状态,需要等一段时间比如两分钟才能完全释放fd吧。

不知道是不是这个原因,如果是自己写测试程序,在同一个机器上搞很多连接可能会碰到这个问题
[/Quote]
这个有办法解决吗?
lvyinghong 2011-07-15
  • 打赏
  • 举报
回复
这个好像是,主动断开的tcp端,有个time-wait状态,需要等一段时间比如两分钟才能完全释放fd吧。

不知道是不是这个原因,如果是自己写测试程序,在同一个机器上搞很多连接可能会碰到这个问题
search_you 2011-07-15
  • 打赏
  • 举报
回复
不管的话会耗尽文件描述符啊,之后会出现too many open files的错误,我已经把系统能打开的最大文件数设置为65535了。abao623660072,你的头像太性感了,呵呵!
金刚葫芦娃 2011-07-15
  • 打赏
  • 举报
回复
不需要管.

23,216

社区成员

发帖
与我相关
我的任务
社区描述
Linux/Unix社区 应用程序开发区
社区管理员
  • 应用程序开发区社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

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