为WinSocks和*nix制作一个无阻塞套接字

Making a Nonblocking socket for WinSocks and *nix

本文关键字:一个 套接字 WinSocks nix      更新时间:2023-10-16

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

在linux上:

fcntl(fd, F_SETFL, O_NONBLOCK);

Windows:

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

select()应该用于阻塞套接字。当read()立即返回时,它会返回,非阻塞套接字总是如此。

相关文章: