gpt4 book ai didi

c - UDP 套接字无法接收 ECONNREFUSED

转载 作者:太空宇宙 更新时间:2023-11-04 04:06:05 25 4
gpt4 key购买 nike

我使用以下方法创建了一个套接字:socket(AF_INET, SOCK_DGRAM, IPPROTO_UDP)。

根据 this ,如果我多次发送简单数据包(乘以 send() 和/或 sendto()),我可以获得 ECONNREFUSED。 ICMP 应该告知之前的数据包没有到达并且 ECONNREFUSED 应该出现。但是它失败了,errno 不报告任何错误,并且 send() 总是返回发送的字节数。

UDP 协议(protocol)实际上不应该告诉数据包已发送。但据我了解,ICMP 可以提供建议。

那么,问题是 - 为什么它无法接收 ECONNREFUSED?

一切都使用 Winsock 完成。

最佳答案

这可能有两个原因。

  • 目标机器没有(出于某种原因)发回 ICMP
  • 目标机器确实发送回ICMP但是winsock没有正确解释它(我知道某些旧的Unixes这样做)

简而言之,最好的办法是使用嗅探器。尝试使用 wireshark,看看是否能返回 ICMP。

关于c - UDP 套接字无法接收 ECONNREFUSED,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5762570/

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