c - Linux 中的非阻塞连接

标签 c linux

我在 Linux 中使用函数 connect。如果无法连接,它将一直等待连接。我想做什么:

  • 尝试连接
  • 如果成功,它将被阻止。
  • 如果没有,它将尝试连接两个小时
  • 如果两个小时后仍未成功连接,它将停止尝试并不再阻塞。

我应该怎么做?

我的部分代码:

serv_addr.sin_port = htons(_params->port);
_log.debug("connecting ...");
int co = connect(_socket,(struct sockaddr *) &serv_addr,sizeof(serv_addr));
if (co < 0) 
{
    return false;
}

_log.debug("connected ");

最佳答案

之前好像有人回答过这个问题: 使用 套接字(...,SOCK_NONBLOCK,...) 创建套接字。

关于c - Linux 中的非阻塞连接,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37615939/

相关文章:

linux - 通过 Vmware 构建 linux 应用程序

linux - 检查大目录的大小

c - 在 Xcode 中使用 C 的文件 I/O 时遇到问题

c - gcc 中有 128 位整数吗?

linux - X11/X - linux 桌面软件,我不明白它是如何组合在一起的

java - Apache Tika - PrintWriter 适用于本地 Windows 机器,但不适用于 Linux 机器

php - PHP 5.4 的编译器当前状态如何?

c - 向 pthread_create() 发送多个参数

c - OpenGL 中的挤压

c - 在需要 char 的地方继续获取 ascii 值