当前位置: 技术问答>linux和unix
socket的block和nonblock到底有什么区别?
来源: 互联网 发布时间:2016-01-30
本文导语: 之前看数隐约记得是主要区别是read(): nonblock:read()在没有接收到数据时会立即返回0; block: read()在没有接收到数据时会阻塞一段时间,时间过后还没有收到会返回一个值(这个值是0还是-1好像) 记得不是很牢...
之前看数隐约记得是主要区别是read():
nonblock:read()在没有接收到数据时会立即返回0;
block: read()在没有接收到数据时会阻塞一段时间,时间过后还没有收到会返回一个值(这个值是0还是-1好像)
记得不是很牢,请大家帮我弄清楚这个内容
nonblock:read()在没有接收到数据时会立即返回0;
block: read()在没有接收到数据时会阻塞一段时间,时间过后还没有收到会返回一个值(这个值是0还是-1好像)
记得不是很牢,请大家帮我弄清楚这个内容
|
nonblock/block,不仅仅是在read,write上体现出来,在connect,accept,send,recv等和外设操作有关的函数都能体现出来.
block时,函数等到此操作结束才返回.一般可以根据返回值来判断成功失败.
nonblock时,函数只是对已经存在的数据进行做作,不等待.要有其他方法来判断成功失败.
block时,函数等到此操作结束才返回.一般可以根据返回值来判断成功失败.
nonblock时,函数只是对已经存在的数据进行做作,不等待.要有其他方法来判断成功失败.
|
1楼加楼主的一起是正确答案.