免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
最近访问板块 发新帖
查看: 1738 | 回复: 1
打印 上一主题 下一主题

[Linux] 关于poll的问题 [复制链接]

论坛徽章:
0
跳转到指定楼层
1 [收藏(0)] [报告]
发表于 2013-03-17 01:31 |只看该作者 |倒序浏览
最近碰到一个奇怪的问题。
我们的应用程序在一个经过openSSL的端口上监听,然后和client端进行交互。
当连接建立完以后,我们的程序是通过poll来判断该连接上是否有数据可读的。
现在的问题是:
有时候能看到数据进来(通过Wireshar看到的),但我们程序的poll结果却一直说revents为0。
不知道这种情况是怎么引起的。
请指教,谢谢。

论坛徽章:
4
水瓶座
日期:2013-09-06 12:27:30摩羯座
日期:2013-09-28 14:07:46处女座
日期:2013-10-24 14:25:01酉鸡
日期:2014-04-07 11:54:15
2 [报告]
发表于 2013-03-17 11:38 |只看该作者
       The set of file descriptors to be monitored is specified in the fds argument, which is an array of structures  of
       the following form:

           struct pollfd {
               int   fd;         /* file descriptor */
               short events;     /* requested events */
               short revents;    /* returned events */
           };

       The caller should specify the number of items in the fds array in nfds.

       The  field  fd  contains  a  file descriptor for an open file.  If this field is negative, then the corresponding
       events field is ignored and the revents field returns zero.  (This provides  an  easy  way  of  ignoring  a  file
       descriptor for a single poll() call: simply negate the fd field.)

       The field events is an input parameter, a bit mask specifying the events the application is interested in for the
       file descriptor fd.  If this field is specified as zero, then all events are ignored for fd and  revents  returns
       zero.

       The  field revents is an output parameter, filled by the kernel with the events that actually occurred.  The bits
       returned in revents can include any of those specified in events, or one of the values POLLERR, POLLHUP, or POLL-
       NVAL.   (These  three bits are meaningless in the events field, and will be set in the revents field whenever the
       corresponding condition is true.)

       If none of the events requested (and no error) has occurred for any of the file descriptors, then  poll()  blocks
       until one of the events occurs.
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

北京盛拓优讯信息技术有限公司. 版权所有 京ICP备16024965号-6 北京市公安局海淀分局网监中心备案编号:11010802020122 niuxiaotong@pcpop.com 17352615567
未成年举报专区
中国互联网协会会员  联系我们:huangweiwei@itpub.net
感谢所有关心和支持过ChinaUnix的朋友们 转载本站内容请注明原作者名及出处

清除 Cookies - ChinaUnix - Archiver - WAP - TOP