gpt4 book ai didi

linux - recvfrom 失败,错误 11

转载 作者:太空狗 更新时间:2023-10-29 12:21:54 29 4
gpt4 key购买 nike

我正在尝试使用 sendtorecvfrom 函数的 udpclient 程序。我将套接字的 SO_RCVTIMEO 值设置为 10 秒。

我正在将套接字绑定(bind)到源 IP 地址和源端口。当我检查 netstat 时,我可以看到没有其他进程绑定(bind)了相同的值。我的绑定(bind)操作也成功了。

然后我正在执行一个 sendto,它向目的地发送一个回显请求。 sendto 之后我正在做一个 recvfrom。但是 recvfrom 失败时说 ERRNO 11 这意味着再试一次 :(

但是,如果我检查 wireshark 日志,我可以看到 ECHO REQUEST 和 ECHO REPLY 会在几毫秒内到达,但 recvfrom 仍然无法读取它:(。在 wireshark 中,我看到了 UDP ECHO REQUEST 和 UDP ECHO REPLY。

我的系统中没有启用任何防火墙。

有什么方法可以调试这个问题:(我真的很怀疑 RECV 操作是否有任何方法可以查明数据包是否正在发送到我的 sockFD ???

更新 1: 我的 Linux PC 通过交换机连接到另一台充当服务器的 Linux PC。

最佳答案

我终于找到了问题......

似乎数据包的 UDP 校验和是错误的,因为 IP STACK 在数据包到达 SOCKET 之前丢弃了数据包 :( 结果是 recvfrom 超时并退出。

关于linux - recvfrom 失败,错误 11,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3271082/

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