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

socket关闭是是否需要从epoll里面移出

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

    本文导语:  将socket添加到epoll中,关闭socket时是否需要从epoll中移出。epool是否会将其主动移出?对socket close后不从epoll中移出是否会有影响? | 你的问题是Q6,答案是A6 QUESTIONS AND ANSWERS (from linux-kernel) ...

将socket添加到epoll中,关闭socket时是否需要从epoll中移出。epool是否会将其主动移出?对socket close后不从epoll中移出是否会有影响?

|
你的问题是Q6,答案是A6
QUESTIONS AND ANSWERS (from linux-kernel)
              Q1     What happens if you add the same fd to an epoll_set twice?
              A1     You  will probably get EEXIST. However, it is possible that two threads may add the same fd twice. This  
                     is a harmless condition.

              Q2     Can two epoll sets wait for the same fd? If so, are events reported to both epoll sets fds?
              A2     Yes. However, it is not recommended. Yes it would be reported to both.

              Q3     Is the epoll fd itself poll/epoll/selectable?
              A3     Yes.

              Q4     What happens if the epoll fd is put into its own fd set?
              A4     It will fail. However, you can add an epoll fd inside another epoll fd set.

              Q5     Can I send the epoll fd over a unix-socket to another process?
              A5     No.

              Q6     Will the close of an fd cause it to be removed from all epoll sets automatically?
              A6     Yes.

              Q7     If more than one event comes in between epoll_wait(2) calls, are they combined or reported separately?
              A7     They will be combined.

              Q8     Does an operation on an fd affect the already collected but not yet reported events?
              A8     You can do two operations on an existing fd. Remove would be meaningless for this case.  Modify  will 
                     re-read available I/O.

              Q9     Do  I  need  to  continuously  read/write  an fd until EAGAIN when using the EPOLLET flag (      
                     Edge-Triggered behaviour ) ?
              A9     No you donu2019t. Receiving an event from epoll_wait(2) should suggest to you that  such  file  
                     descriptor  is ready  for  the  requested  I/O operation. You have simply to consider it ready until you 
                     will receive the next EAGAIN. When and how you will use such file descriptor is entirely up to  you.  
                     Also,  the  condition that  the  read/write  I/O  space  is  exhausted can be detected by checking the 
                     amount of data read/write from/to the target file descriptor. For example, if you call read(2) by asking
                     to read a certain amount of data and read(2) returns a lower number of bytes, you can be sure to have 
                     exhausted the read I/O space for such file descriptor. Same is valid when writing using the write(2) 
                     function.

    
 
 

您可能感兴趣的文章:

  • 关闭socket 失败是什么原因
  • 关闭socket的问题
  • read一个socket, 发现read到的长度是0, 是否一定代表对方调用了close关闭了socket?
  • 如何关闭socket
  • close() 怎么关不掉socket? socket应该怎么关闭?
  • ftp服务器socket关闭问题
  • http连接,服务器端关闭socket
  • 连续创建和关闭1024个socket就会出现问题,错误码24,怎么办?
  • 服务器端关闭,客户端select 会一直可读, 读的长度是-1,怎么在不关闭客户端socket下,清除可读
  • 急:如何关闭此socket?
  • socket问题,当客户端关闭或者实际链路断开后服务器端怎么判断?
  • SOCKET 编程之从容关闭套接字如何实现????
  • socket关闭后为什么recv不返回
  • linux socket 如何开启和关闭nagle
  • UDP怎么检测对方socket已关闭无法接收数据?
  • socket read阻塞:一个线程关闭另一个线程错误
  • 请教怎样关闭服务器端的socket?
  • 怎样关闭 socket server (客户端正连接时)
  • 并发服务器设计中为啥关闭原来的socket描述符?
  • 两个 Socket 互相通信,其中一个如何判断另一个 Socket 是否已经意外断开了连接?
  • socket是否可以同时读写
  • socket如何判断接受缓冲区是否已满
  • 你是否可以回答Socket的问题?数据先后问题
  • UNIX Domain Socket通讯是否要求主机上要有网卡?
  • 谁知道solaris对socket的recv和send函数是否是原子操作,谢谢!!
  • socket编程,我如何确定与对方的连接是否正常?
  • linux下如何利用socket测试服务器是否可达?
  • select+read 读服务器发送过来的数据, 假设服务器调用close后, 客户端的select是否返回这个socket可读?
  • 【急急急急急】socket的recvmsg() 函数是否能够在Linux2.6中正常使用
  • (linux c)socket数据接受后判断是否相等的问题
  • Web服务器/前端 iis7站长之家
  •  
    本站(WWW.)旨在分享和传播互联网科技相关的资讯和技术,将尽最大努力为读者提供更好的信息聚合和浏览方式。
    本站(WWW.)站内文章除注明原创外,均为转载、整理或搜集自网络。欢迎任何形式的转载,转载请注明出处。












  • 相关文章推荐
  • libevent2需要从socket读一段数据写入一个socket中,同时发送给另一个socket
  • 初来者,试问winsock改造成gcc socket需要什么头文件?
  • socket程序中,查看error需要什么头文件?
  • 写socket程序的时候,都需要注意哪些信号?
  • 小虎MM 需要一些关于SOCKET编程的资料网址和书目!
  • 编译socket程序需要加什么库函数?
  • 请教: read一个socket, read返回需要多长时间?
  • 实用了epoll_wait还需要将socket设置为非阻塞吗?
  • 我写了SOCKET编程(需要开放哪个端口,如何设置)
  • 客户端发送的socket数据,需要客户端断开连接之后服务器端才能受到,为何
  • 请问oicq的原理是什么,运行机制是什么?用java的socket能实现吗?需要了解那些基本协议?看那些书呢?
  • java命名空间java.net类socket的类成员方法: socket定义及介绍
  • re socket编程中 ACCEPT返回的socket与原socket(他参数中的)端口号一样吗?
  • java命名空间java.nio.channels类socketchannel的类成员方法: socket定义及介绍
  • socket 通讯开发包 Simple Sockets
  • java命名空间java.nio.channels类serversocketchannel的类成员方法: socket定义及介绍
  • C++ Socket 库 C++ Sockets
  • java命名空间java.nio.channels类datagramchannel的类成员方法: socket定义及介绍
  • vc做的的socket应用和unix下socket?
  • java命名空间java.net类socket的类成员方法: getsendbuffersize定义及介绍
  • QSocketDevice ( int socket, Type type )中那个 int socket 是哪里来得?
  • java命名空间java.net类socket的类成员方法: getreceivebuffersize定义及介绍
  • socket编程 通过man socket, 没有找到socket函数的第一参数该填什么 怎样利用man手册
  • java命名空间java.net类socket的类成员方法: gettrafficclass定义及介绍
  • 线程间可否通过管道传递SOCKET句柄?还有其他方式传递SOCKET么?
  • java命名空间java.net类socket的类成员方法: getport定义及介绍
  • [FreeBSD] 大神,求解,control socket : can‘t to any socket
  • java命名空间java.net类socket的类成员方法: getlocalport定义及介绍
  • 大家帮忙推荐一本linux socket编程的入门书,我刚接触socket,谢谢!!
  • java命名空间java.net类socket的类成员方法: getinetaddress定义及介绍
  • 我的ping程序怎么老是出现Socket operation on non-socket


  • 站内导航:


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

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

    浙ICP备11055608号-3