日期:2014-05-16  浏览次数:20786 次

socket的block和nonblock到底有什么区别?
之前看数隐约记得是主要区别是read():
nonblock:read()在没有接收到数据时会立即返回0;
block:   read()在没有接收到数据时会阻塞一段时间,时间过后还没有收到会返回一个值(这个值是0还是-1好像)
记得不是很牢,请大家帮我弄清楚这个内容


------解决方案--------------------
nonblock/block,不仅仅是在read,write上体现出来,在connect,accept,send,recv等和外设操作有关的函数都能体现出来.
block时,函数等到此操作结束才返回.一般可以根据返回值来判断成功失败.
nonblock时,函数只是对已经存在的数据进行做作,不等待.要有其他方法来判断成功失败.

------解决方案--------------------
1楼加楼主的一起是正确答案.