gpt4 book ai didi

c - SO_KEEPALIVE 和轮询

转载 作者:塔克拉玛干 更新时间:2023-11-03 01:39:20 26 4
gpt4 key购买 nike

你好,我尝试使用下面的代码,但它似乎不起作用,在我做的连接套接字( socks ):

struct pollfd input_fd; 
int a=1;
setsockopt(sock,SOL_SOCKET,SO_KEEPALIVE,&a,sizeof(a));
a=1;
setsockopt(sock,SOL_TCP,TCP_KEEPIDLE,&a,sizeof(a));
a=1;
setsockopt(sock,SOL_TCP,TCP_KEEPINTVL,&a,sizeof(a));
a=1;
setsockopt(sock,SOL_TCP,TCP_KEEPCNT,&a,sizeof(a));
input_fd.fd = sock;
input_fd.events = POLLIN | POLLOUT;
input_fd.revents = 0;
int p=poll(&input_fd, 1,-1);

我将 LAN 插头拔到远程计算机上,但没有任何反应。这内核似乎在 poll 系统调用中休眠。这是想要的吗行为,还是缺陷?

最佳答案

设置 nfds:

int p=poll(&input_fd, sock+1 ,-1); 

此外,我不确定这些设置的允许范围,值得检查 setsockopt 的返回值。

关于c - SO_KEEPALIVE 和轮询,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9604050/

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