谁能告诉我为什么下面的代码总是返回 0 。套接字描述符值为 3。 我正在使用 open suse TFTP 服务器。它正在监听本地主机中的端口 69。
connect()函数返回成功..
connection_timer.tv_sec = 2; // s
connection_timer.tv_usec = 0;
FD_ZERO(&fd_reader);
// laukiam, kol bus ka nuskaityti
FD_SET(socket_descriptor, &fd_reader);
int select_ready = select(socket_descriptor + 1, &fd_reader, NULL, NULL, &connection_timer);
当我使用 TCPdump 检查数据包时,它发送第一个数据包,然后在收到 Ack 之前在某处关闭连接..
最佳答案
如果计时器(示例中的 connection_timer
)在任何描述符变得有趣之前到期,您将从 select
获得 0
返回代码.
所以这不是一个错误。看起来很可能您没有正确初始化connection_timer
。
关于c - 错误 :Socket Select() function always return zero. 。?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7138420/