我正在创建一个 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/