为WinSocks和*nix创建一个非阻塞套接字

6

在C/C++中,我如何将WinSocks和*nix的阻塞套接字转换为非阻塞套接字,以便select()函数能够正确工作。您可以使用预处理器来进行平台特定的代码编写。

2个回答

7

On linux:

fcntl(fd, F_SETFL, O_NONBLOCK);

Windows:

u_long on = 1;
ioctlsocket(fd, FIONBIO, &on);

5

select() 应该用于 阻塞 套接字。当一个 read() 立即返回时,它也会返回,而非阻塞套接字始终如此。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接