代码之家  ›  专栏  ›  技术社区  ›  Roger Lipscombe

无阻塞连接是否保证在eInProgress中失败?

  •  0
  • Roger Lipscombe  · 技术社区  · 8 年前

    如果我为非阻塞操作设置了一个套接字,如下所示:

    int fd = socket(AF_INET, SOCK_STREAM | SOCK_NONBLOCK, IPPROTO_TCP);
    int rc = connect(fd, (struct sockaddr *)&addr, sizeof(addr));
    

    …是 connect 放心 失败 EINPROGRESS ,或者我需要立即处理成功的案例吗?

    2 回复  |  直到 8 年前
        1
  •  3
  •   Maxim Egorushkin    8 年前

    不一定。连接到 127.0.0.1 可能会立即连接或失败。

        2
  •  2
  •   user207421    8 年前

    你需要马上处理好案子。这就是它返回0或-1的原因。对于非阻塞模式,文档对此没有任何例外。

    推荐文章