c - 错误 :Socket Select() function always return zero. 。?

标签 c sockets udpclient

谁能告诉我为什么下面的代码总是返回 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/

相关文章:

c++ - 增加网关的负载能力

c# - 无法从Android应用程序接收Windows 10 UWP中的UDP广播

c - C 中的服务器。我如何处理查询字符串?

sockets - 一台机器作为 STunnel 的服务器和客户端

java - 如何创建一个基本的 Java 服务器?

c++ - Windows 8 下未解析的套接字引用

c - 如何仅使用单个端口减少 UDP 套接字通信中的消息丢失?

c - 如何关闭 libavformat 错误消息

c - 如何知道以下函数是否返回正确的结果或 `jansson` 中的错误条件?

c - 表达式必须是可修改的值 (C)