免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
最近访问板块 发新帖
查看: 4292 | 回复: 3

【请教】通过read() 读 receive_socket为什么有时候会卡住? [复制链接]

论坛徽章:
0
发表于 2010-08-15 12:24 |显示全部楼层
有时候读读就不动了,也没有返回任何值,不知道是什么原因所致呢?

  按理说如果用于 receive的socket没有任何byte,或是哪里不对应该返回byte number或是 -1吧?

还请大家指教

论坛徽章:
0
发表于 2010-08-15 12:40 |显示全部楼层
是不是阻塞的原因呢?

论坛徽章:
0
发表于 2010-08-15 13:16 |显示全部楼层

“读读就不动了,也没有返回任何值”是什么意思哦?
按你的意思就是阻塞在读操作上了哦?试试非阻塞。

论坛徽章:
0
发表于 2010-08-15 13:43 |显示全部楼层
“读读就不动了,也没有返回任何值”是什么意思哦?
按你的意思就是阻塞在读操作上了哦?试试非阻 ...
lenky0401 发表于 2010-08-15 13:16



   

不好意思,问题没怎么描述准备清楚。

读读不动,就是读了1000左右各recv_socket之后,就会卡在read函数处,就是read函数一直不返回了

恩,改成非阻塞时可以的,不过改成非阻塞后,也是while,直到read不返回-1, 这样的话是不是跟阻塞一样了呢?

那么为什么用non-block就可以,用block就会不返回呢?
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

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

清除 Cookies - ChinaUnix - Archiver - WAP - TOP