阻塞不能用et,非阻塞都可以。et模式下,描述符需要循环去读,因为它只激活一次,否则会使得这次没读取完的数据,变成下一次事件触发时先读取,这很有可能是不我们不愿意接受的。所以每次都需要把这次接受到的全部读完,因此需要while(1)。如果一直停留在while(1)中,该线程就不能做其他的事情了,所以需要退出,阻塞的文件描述符读到内核缓冲区没有数据时,就会阻塞,就退不出来了,如果是非阻塞的,没有数据,就会报错,可以根据错误码的值,判断是否是因为读完了导致的错误。
4 2

相关推荐

牛客网
牛客网在线编程
牛客网题解
牛客企业服务