gpt4 book ai didi

java - 测试我的 Java UDP 对等程序时出现问题

转载 作者:行者123 更新时间:2023-12-01 12:04:20 27 4
gpt4 key购买 nike

我已经使用名为“Packet Tester”的程序在本地测试了该程序 Receives the packet

我为我的手机下载了 UDP 接收器/发送器。在我的计算机上使用 java 程序,我能够将数据包发送到移动服务器,并且运行良好。我只是输入了手机的 IP 地址和它正在监听的端口号。

当我尝试在我的笔记本电脑和计算机上运行 UDP 对等时,他们根本无法聊天。

有谁知道这是否与使用同一个路由器有关。不应该,因为我的手机正在接收来自笔记本电脑和计算机的消息。 ]

Java 应用程序可以在本地检索 UDP 数据包,但不能从笔记本电脑或移动设备检索 UDP 数据包。移动设备可以从笔记本电脑和移动设备检索 udp 数据包。测试结果令人困惑,让我陷入困境。

我很感激您对此的看法。

谢谢。

最佳答案

问题可能是由路由器完成的网络地址转换造成的。

我相信您正在将数据包发送到正确的 IP 地址,但端口不正确。您可能将数据包发送到的端口是计算机的本地端口。您需要将数据包发送到路由器分配的端口。

当数据包从计算机 A 通过路由器到达计算机 B 时,路由器将计算机的本地端口映射到某个随机端口。

因此,如果计算机 B 需要向计算机 A 发送数据包,那么计算机 B 需要将其发送到路由器分配的 IP:端口。然后路由器会将其转发到计算机 A 的本地 IP:端口。

我建议首先了解当 UDP 数据包通过网络内部或外部的路由器时如何创建此映射。了解网络地址转换、UDP 打洞。

这些来源可能有帮助:

Network Address Translation

UDP Hole Punching

RFC 4787 NAT Behavioral Requirements UDP

RFC 5128 P2P across NAT

关于java - 测试我的 Java UDP 对等程序时出现问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27739057/

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