免费注册 查看新帖 |

Chinaunix

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

再次请教个epoll的问题。 [复制链接]

论坛徽章:
0
跳转到指定楼层
1 [收藏(0)] [报告]
发表于 2007-07-27 10:08 |只看该作者 |倒序浏览
小弟用epoll侦听4096个udp端口,两个client分别向两个端口(8000,8001)发送数据(媒体流5Mb/s),这个时候出现了问题:如果我指定ev.events = EPOLLIN|EPOLLET,那么8000和8001上面收到事件数量差不多,但是每个端口接受的数据会丢失一小部分(这个应该是边沿触发的劣势);然后我改为ev.events = EPOLLIN,那么对于8000端口数据倒是数据接受齐全,但是基本上是epoll-wait接收的事件基本上都是8000端口上面的(8000端口首先接受数据),统计了一下,两个端口上面的事件数量是100:1,8001端口基本上没什么动作。
  不知道哪位大哥碰到过这种情况,有没有什么好的解决方法,能够让两个端口都能接受数据齐全,先谢了

论坛徽章:
0
2 [报告]
发表于 2007-07-27 10:09 |只看该作者
,急,希望大家帮帮忙

论坛徽章:
0
3 [报告]
发表于 2007-07-27 11:45 |只看该作者
请确保read时是读到EAGIN== errno,(这里的read包括accept)

ps 用边缘触发
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

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

清除 Cookies - ChinaUnix - Archiver - WAP - TOP