当前位置:  技术问答>linux和unix

Epoll文件描述符耗尽的问题,折磨了好几天了

    来源: 互联网  发布时间:2016-07-04

    本文导语:  Epoll的LT模式,如果没有明确close socket的话,开始还比较正常,但是fd会一直耗尽到1024 后来我把代码改成回送的时候送完我就把socket给colse了,但是有时候系统繁忙,又不能顺利地把回送(send)数据送出去,马上close...

Epoll的LT模式,如果没有明确close socket的话,开始还比较正常,但是fd会一直耗尽到1024

后来我把代码改成回送的时候送完我就把socket给colse了,但是有时候系统繁忙,又不能顺利地把回送(send)数据送出去,马上close的话会造成数据丢失。有什么办法能够高效地回送数据,但是又不会造成fd耗尽?

另外linux是不是一定得自己close 套接字?

|
linux 肯定是要手动close(fd)的。 其次,可以查一下linger 这个套接字选项。它决定了在关闭套接字前,输出缓冲区里数据滞留的时间长短。

|
这个以前倒没没遇到过,关注一下。
以前都是send成功返回后马上close socket,一直没发现有什么问题。

实在不行的话,那就先不要关闭socket,而是让对方在收完消息后先close,然后你在epoll中增加对EPOLLRDHUP事件的监听,监听到对方关闭socket之后你这边再close。
只是这样你需要小心在等待关闭的这段时间里,别在这个socket收发其它消息了。

    
 
 

您可能感兴趣的文章:

 
本站(WWW.)旨在分享和传播互联网科技相关的资讯和技术,将尽最大努力为读者提供更好的信息聚合和浏览方式。
本站(WWW.)站内文章除注明原创外,均为转载、整理或搜集自网络。欢迎任何形式的转载,转载请注明出处。












  • 相关文章推荐
  • epoll中epoll_event结构体的含义
  • epoll_ctl(,EPOLL_CTL_DEL,); 的问题!!!
  • 第一次用epoll就傻眼,程序报create_epoll error Function not implemented
  • 为Qt添加epoll的高性能I/O复用 qt_eventdispatcher_epoll
  • 请问: 当服务器采用epoll 时,客户端连不上,但若服务器端不用epoll时,也连上并发消息,这是为什么啊
  • epoll_ctl(epfd, EPOLL_CTL_ADD, fd, &event)为何老返回-1
  • epoll 退出
  • 关于epoll的几个疑问
  • 大家好,问个问题,关于EPOLL的。。。
  • epoll并发问题
  • 有人碰到过epoll丢信号吗
  • epoll异常问题
  • epoll模型如何限制最大连接数
  • epoll可读的问题
  • python实现Linux异步epoll代码
  • epoll多路复用模型的疑惑,请高手解答
  • epoll,socket超时如何设置?
  • epoll的一个问题
  • 关于epoll的链接库
  • 谁能解释一下epoll、libevent、zeroMQ的区别?


  • 站内导航:


    特别声明:169IT网站部分信息来自互联网,如果侵犯您的权利,请及时告知,本站将立即删除!

    ©2012-2021,,E-mail:www_#163.com(请将#改为@)

    浙ICP备11055608号-3