当前位置: 技术问答>linux和unix
关于socket编程中阻塞的问题
来源: 互联网 发布时间:2016-01-01
本文导语: 刚刚开始学习socket编程,有个问题不是很清楚,请指点一下: 在使用fcntl方法设置一个socket为阻塞或者非阻塞后,对代码的影响是什么?如果设置成非阻塞,accept方法被调用时就不会一直阻塞在那里了么?不清楚,请...
刚刚开始学习socket编程,有个问题不是很清楚,请指点一下:
在使用fcntl方法设置一个socket为阻塞或者非阻塞后,对代码的影响是什么?如果设置成非阻塞,accept方法被调用时就不会一直阻塞在那里了么?不清楚,请指点一下,谢谢!
分有点少,抱歉!
另外请告知如何给分吧
在使用fcntl方法设置一个socket为阻塞或者非阻塞后,对代码的影响是什么?如果设置成非阻塞,accept方法被调用时就不会一直阻塞在那里了么?不清楚,请指点一下,谢谢!
分有点少,抱歉!
另外请告知如何给分吧
|
while(1) {
read(fd,buf,size);
}
像上面的代码,如果为阻塞方式,没有数据read就一直等
如果为非阻塞方式,没有数据,read不会等,直接就返回一个错误,继续往下面走了。
其他方法就是select了,用于检测多个非阻塞的描述符。
read(fd,buf,size);
}
像上面的代码,如果为阻塞方式,没有数据read就一直等
如果为非阻塞方式,没有数据,read不会等,直接就返回一个错误,继续往下面走了。
其他方法就是select了,用于检测多个非阻塞的描述符。