免费注册 查看新帖 |

Chinaunix

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

问个关于recv函数的问题 [复制链接]

论坛徽章:
0
跳转到指定楼层
1 [收藏(0)] [报告]
发表于 2007-11-01 10:49 |只看该作者 |倒序浏览
调用recv接受数据的时候怎么能够使它一发现没有数据可收就即刻返回,而不是阻塞在那里直至有数据到来呢?

论坛徽章:
0
2 [报告]
发表于 2007-11-01 10:54 |只看该作者
非阻塞IO

论坛徽章:
0
3 [报告]
发表于 2007-11-01 10:57 |只看该作者
具体是怎么样啊?用select?

论坛徽章:
0
4 [报告]
发表于 2007-11-01 11:02 |只看该作者

回复 #3 holton 的帖子

参考UNPv1

论坛徽章:
0
5 [报告]
发表于 2007-11-01 11:13 |只看该作者

回复 #4 cugb_cat 的帖子

unpv1里我找到一个方法是用select,将最后的时间参数设为0。这属于阻塞还是非阻塞啊?

论坛徽章:
0
6 [报告]
发表于 2007-11-01 11:19 |只看该作者

回复 #5 holton 的帖子

fcntl

论坛徽章:
0
7 [报告]
发表于 2007-11-01 12:20 |只看该作者

回复 #6 cugb_cat 的帖子

哦,谢谢!但是用select是算阻塞还是非阻塞啊?它不阻塞在recv那里,但是阻塞在select那里

论坛徽章:
0
8 [报告]
发表于 2007-11-01 12:27 |只看该作者
原帖由 holton 于 2007-11-1 12:20 发表
哦,谢谢!但是用select是算阻塞还是非阻塞啊?它不阻塞在recv那里,但是阻塞在select那里

那就不要用select了。

论坛徽章:
0
9 [报告]
发表于 2007-11-01 12:50 |只看该作者
因为有道笔试题要求这样改recv(),但是不能用非阻塞。所以只有用select,不过我又不确定select是阻塞还是非阻塞

论坛徽章:
0
10 [报告]
发表于 2007-11-01 13:00 |只看该作者
原帖由 holton 于 2007-11-1 12:50 发表
因为有道笔试题要求这样改recv(),但是不能用非阻塞。所以只有用select,不过我又不确定select是阻塞还是非阻塞

select有个参数,指定多长时间没有描述符可读(写、异常)就返回。man一下
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

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

清除 Cookies - ChinaUnix - Archiver - WAP - TOP