【问题标题】:Making a Nonblocking socket for WinSocks and *nix为 WinSocks 和 *nix 创建一个非阻塞套接字
【发布时间】:2010-09-15 07:34:04
【问题描述】:

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

【问题讨论】:

    标签: c++ c asynchronous sockets nonblocking


    【解决方案1】:

    在 Linux 上:

    fcntl(fd, F_SETFL, O_NONBLOCK);
    

    Windows:

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

    【讨论】:

      【解决方案2】:

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

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 2015-04-24
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2010-10-31
        • 2013-10-15
        • 1970-01-01
        相关资源
        最近更新 更多