c - 套接字超时实现

标签 c linux client-server

我正在创建一个 DNS 客户端,我需要在其中实现套接字超时。我在互联网上找不到有关套接字超时的更多信息。所以,我想要一个套接字超时的代码,并且我应该在代码中的哪里实现套接字超时? 谢谢

最佳答案

对于 100 毫秒超时,如果您在客户端中使用 UDP 进行 DNS,则需要在进入阻止读取之前执行以下操作:

struct timeval timeout;
timeout.tv_sec = 0;
timeout.tv_usec = 100000;
if (setsockopt(receive_socket, SOL_SOCKET, SO_RCVTIMEO, &timeout, sizeof(tv)) < 0) {
    perror("Error");
}

关于c - 套接字超时实现,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27054899/

相关文章:

C写入后附加到文件

c - 按位和求值

linux - 目录不存在,但显然存在

php - 使用 php 脚本解析输出 2>&1

linux - 发送到源地址

java - 近距离在 1 部手机和 2 部平板电脑之间进行通信的最有效方式?

javascript - javaScript 中的类 C 代码片段定义

c - C 程序的段错误(核心转储)错误

linux - 如果反引号无法执行,则 STDERR 重定向到 STDOUT 会丢失

c++ - 在计算机之间同步对象列表的模式(在 C++ 中)?