6

在 C/C++ 中,如何在 WinSocks 和 *nix 中将阻塞套接字转换为非阻塞套接字;这样 select() 才能正常工作。您可以将预处理器用于特定于平台的代码。

4

2 回答 2

7

在 Linux 上:

fcntl(fd, F_SETFL, O_NONBLOCK);

窗户

u_long on = 1;
ioctlsocket(fd, FIONBIO, &on);
于 2008-10-04T20:05:10.063 回答
5

select() 应该在阻塞套接字上工作。它在 read() 立即返回时返回,非阻塞套接字总是如此。

于 2008-10-05T02:24:59.407 回答