+ -
当前位置:首页 → 问答吧 → 【请教】通过read() 读 receive_socket为什么有时候会卡住?

【请教】通过read() 读 receive_socket为什么有时候会卡住?

时间:2010-08-15

来源:互联网

有时候读读就不动了,也没有返回任何值,不知道是什么原因所致呢?

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

还请大家指教

作者: nine8   发布时间: 2010-08-15

是不是阻塞的原因呢?

作者: nine8   发布时间: 2010-08-15


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

作者: lenky0401   发布时间: 2010-08-15



QUOTE:
“读读就不动了,也没有返回任何值”是什么意思哦?
按你的意思就是阻塞在读操作上了哦?试试非阻 ...
lenky0401 发表于 2010-08-15 13:16




   

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

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

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

那么为什么用non-block就可以,用block就会不返回呢?

作者: nine8   发布时间: 2010-08-15