我希望能够打电话recv()
不必阻塞,所以我想让它成为非阻塞,但我不希望它在发送数据时是非阻塞的。那么能否将套接字设为非阻塞?recv()
函数,或者阻塞/非阻塞模式是否影响所有套接字函数?
对于 Windows,您可以使用ioctlsocket() https://msdn.microsoft.com/en-us/library/windows/desktop/ms738573%28v=vs.85%29.aspx将套接字设置为非阻塞模式。不幸的是,这些设置适用于套接字上的所有操作。因此,对于您的情况,您必须在接收和发送之间切换。
记录如下:对于 Linux,您可以使用MSG_DONTWAIT
标志在recv() http://linux.die.net/man/2/recv调用参数。单个调用将是非阻塞的。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)