远程服务器上未接收到UDP客户端消息

远程服务器上未接收到UDP客户端消息,udp,client-server,Udp,Client Server,尝试实现一个非常简单的Java教程示例“编写数据报客户机和服务器”()。它在本地网络上运行良好。但是,当服务器位于远程地址时,客户端的UDP消息永远不会到达服务器 我正在使用端口32进行通信。客户端和服务器计算机上都禁用了防火墙和防病毒软件。服务器本地网络上的路由器设置为将UDP端口32数据包转发到服务器主机本地地址。客户端路由器也是如此。服务器计算机上的netstat命令显示 UDP 0.0.0.0:32 *:* UDP [::]:32

尝试实现一个非常简单的Java教程示例“编写数据报客户机和服务器”()。它在本地网络上运行良好。但是,当服务器位于远程地址时,客户端的UDP消息永远不会到达服务器

我正在使用端口32进行通信。客户端和服务器计算机上都禁用了防火墙和防病毒软件。服务器本地网络上的路由器设置为将UDP端口32数据包转发到服务器主机本地地址。客户端路由器也是如此。服务器计算机上的
netstat命令显示

 UDP    0.0.0.0:32             *:*



 UDP    [::]:32                *:*
客户端计算机上的Wireshark显示客户端消息正在发送到远程服务器计算机的正确IP地址(在服务器上通过“what is my IP”获取)。但是,远程服务器上的Wireshark显示在UDP端口32上没有收到任何消息


什么会阻止这种通信?

如果不访问tcpdump,很难判断,但请验证传出UDP数据包中的发送方地址是否与计算机传出接口的IP匹配,例如,不是127.0.0.1或计算机另一个接口的地址。发送方地址是10.0.0.160,这是客户端计算机的(本地)IP地址。然而,我刚刚意识到开放端口检查工具显示端口32已关闭!!!我尝试使用其他端口号(如52005),但对于每个端口,它都报告它已关闭(当然,我在路由器上为这些端口进行端口转发)。这可能是个问题吗?刚刚尝试了Simple Port Tester(PcWinTech),它显示我正在使用的端口实际上是打开的(我在Wireshark中看到了来自PcWinTech的测试UDP消息)。因此,端口最终是打开的。您可以写下,您可以将端口转发到客户端路由器上的外部服务器。请尝试禁用此功能,因为它没有任何意义:家庭路由器上的端口转发是为从外部到内部的连接而进行的,而不是从内部到外部的连接。很抱歉造成混淆。发送UDP消息后,客户机应该从服务器获得回复(我根据Java教程示例做了所有事情)。这就是我在客户端转发端口的原因。但是端口转发表只影响传入的数据包,所以它不应该阻止客户端数据包到达Internet。