gpt4 book ai didi

c++ - 修改connect()超时时间

转载 作者:太空狗 更新时间:2023-10-29 17:12:31 25 4
gpt4 key购买 nike

我已经做了一些搜索,但似乎找不到我正在寻找的答案,我能找到的唯一答案是使用 select 来查看套接字是否超时,这正是我已经在做的.

我想知道的是,是否可以更改 connect() 超时之前的时间长度?我目前正在使用 select(),它返回时 errno 设置为 EINPROGRESS,直到最终返回时返回 ETIMEDOUT。无论如何,我可以更改发生此 ETIMEDOUT 之前花费的时间吗?目前它发生在大约 60 秒后。我已尝试调整传递给 select() 调用的超时值,但这只会影响 select() 超时所需的时间。

最佳答案

  1. 创建套接字。
  2. 将其置于非阻塞模式。
  3. 发出 connect()
  4. 调用 select()poll()epoll(),指定您想要的超时时间,并将套接字指定为 writefd,即阻塞直到超时到期或套接字变为可写。
  5. 如果超时,关闭套接字等。
  6. 否则通过getsockopt() 获取套接字上的最后一个错误并查看它是否为零。如果是,则连接成功,否则连接失败。

请注意,您不能通过这种方式将连接超时增加到超过平台默认值(大约一分钟),但您可以减少它。

关于c++ - 修改connect()超时时间,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17144490/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com