Java Android UDP套接字通信(不同路由器后面的客户端服务器)

Java Android UDP套接字通信(不同路由器后面的客户端服务器),java,android,sockets,udp,client-server,Java,Android,Sockets,Udp,Client Server,问题只是沟通之间的问题 我想演示两个手机之间通过互联网进行动态IP(在不同路由器后面)的数据通信(流式传输) 客户端(A[192.168.1.22])NAT(路由器[192.168.1.1])Internet(S-MyServer[62.68.45.111])NAT(路由器[192.168.0.1])客户端(B[192.168.0.44]) ASB 一台移动设备*(客户端A)*将记录的语音数据发送到服务器,另一台客户端(B)将从服务器获取流数据并在耳机中播放,客户端(B)也将此数据发送到客户端(

问题只是沟通之间的问题

我想演示两个手机之间通过互联网进行动态IP(在不同路由器后面)的数据通信(流式传输)

客户端(A[192.168.1.22])NAT(路由器[192.168.1.1])Internet(S-MyServer[62.68.45.111])NAT(路由器[192.168.0.1])客户端(B[192.168.0.44])

ASB

一台移动设备*(客户端A)*将记录的语音数据发送到服务器,另一台客户端(B)将从服务器获取流数据并在耳机中播放,客户端(B)也将此数据发送到客户端(A)。(就像VOIP一样)

我已经完成了两个android移动设备(都有静态IP和相同的NAT(路由器))之间通过Wifi直接通信的语音呼叫,但希望通过互联网实现这一点,这是可能的吗?建议我

当我尝试通信时,问题是服务器无法向客户端(B)发送任何数据,因为端口未转发,并且不想转发端口

提前谢谢。
抱歉,英语不好。

您是否在路由器中为要通过Internet向前推送到的单播端口(或端口号范围的端口触发)设置了虚拟服务器条目?如果您这样做了,但仍然面临一个问题,您的Internet服务提供商是否会阻止某些端口?要执行端口转发以将其作为路由器网关上的公共Internet端口公开,您仍然需要提供服务端口的专用主机的静态专用IP地址…动态专用IP地址将很难实现,因为它在租约到期后将发生更改。是否有任何其他方法可以使用端口以外的地址。