java 如何发送 UDP 数据报到不同的网络?

How to send UDP datagram to different network in java?

我在java做了一个UDP客户端服务器程序。它在本地主机和同一路由器/网络中运行良好。 但是当我 运行 我的笔记本电脑中的 UDP 服务器程序连接到互联网并且 运行 我的实验室中的 UDP 客户端程序(在不同的网络上)时,它无法正常工作。 有什么方法可以通过网络将 UDP 数据报从一个系统发送到另一个系统?

是的,理论上它应该可以正常工作。还是IP。

现实中存在带NAT的路由器。例如,如果您将 UDP 数据包寻址到您家庭 PC 的 public IP 地址,它实际上是在您的路由器上寻址的。路由器不知道他应该将数据包寻址到哪个本地 IP 并丢弃该数据包。

解决方法:为两端路由器配置UDP端口转发。