我在Linux上用C编写UDP客户端/服务器程序。问题是我必须添加连接检查功能。在linux手册页中,我找到了具有此功能的udp客户端示例(http://www.kernel.org/doc/man-pages/online/pages/man3/getaddrinfo.3.html)。它使用写/读函数来检查服务器响应。我试图将它应用到我的程序中,它看起来像这样:
char *test = "test";
nlen = strlen(test) + 1;
if (write(sock, test, nlen) != nlen) { // socket with the connection
fprintf(stderr, "partial/failed write\n");
exit(EXIT_FAILURE);
}
nread = read(sock, buf, nlen);
if (nread == -1) {
perror("Connection");
exit(EXIT_FAILURE);
}
问题不是我在服务器打开时用这个位执行程序,除了读取输入无限时间外它什么也没做,它也没用。我尝试了kill(getpid(),SIGHUP)中断,我在这里找到了其他类似的主题,并关闭(sock,1),但似乎没有任何效果。您能否告诉我如何停止输入读取或任何其他可能的选项以检查udp服务器是否处于活动状态?