gpt4 book ai didi

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

转载 作者:行者123 更新时间:2023-12-03 11:51:31 25 4
gpt4 key购买 nike

谁能告诉我以下代码为什么总是返回0。套接字描述符的值为3。
我正在使用开放式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之前在某个地方关闭连接。

最佳答案

我怀疑您没有收到响应,因为您在UDP套接字上使用了connect(),因此它只能接受来自连接目标的数据报。

由于TFTP答复不是来自端口69,而是来自临时端口,因此永远不会收到确认。

解决方案:在完成初始连接之前,请不要对UDP套接字进行connect()编码。

关于c - 错误:Socket Select() function always return zero.。,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7138420/

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