gpt4 book ai didi

c - libuv : src port of response not same as port on which process is listening

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

我有一个用 python-twisted 编写的客户端,它将 UDP 数据包发送到 IP aaa.bbb.ccc.ddd 的端口 1234,然后等待响应。我还有用 C-libuv 编写的 UDP 服务器,它监听端口 1234 并响应客户端。

现在当它们在同一台机器上运行时,我可以从 UDP 服务器的日志中看到数据已被它接收并且它已发回响应。但是客户端的日志没有显示任何接收到 UDP 数据包的迹象。

当我调查使用 wire-shark 时,我发现了以下内容:

  1. 客户端使用源端口 58963(不断变化)向目标端口 1234 发送 UDP 数据包

  2. UDP 响应(来自 UDP 服务器)也从 58845 发送回 58963

  3. 随后是 ICMP 目标无法到达(端口无法到达)消息。

此行为的原因可能是什么?

最佳答案

原因是服务器正在使用新的 UDP 套接字发送回复,而不是使用接收请求的同一个套接字。从经济的角度来看,这是一种糟糕的做法,而且它也使得任何所需的 UDP 打洞成为不可能。

关于c - libuv : src port of response not same as port on which process is listening,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28554900/

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