Java udp广播到NAT后面的客户端
我想知道是否有办法通过udp套接字为NAT后面的客户端广播数据。我发现了许多示例,其中服务器向多播地址发送数据,而客户端在固定端口上侦听数据。但是,如果它们之间存在NAT,则需要将包发送到不同的端口,这取决于NAT如何创建端口转换,对吗?那么,这里的解决方案是什么呢?谷歌搜索UDP打孔应该会引导您走向正确的方向。这里描述了一种可能的算法:我已经读过了,但是我想知道是否有一个java示例。这种技术对于ex来说稍微复杂一些。需要传输额外的包来保持连接的有效性。不幸的是,我现在还不知道Java示例。你是对的,这是一个更复杂的方法-但不幸的是,NAT使它成为一个更难解决的问题,因为每个客户端可能不知道,事实上可能不知道NAT分配的端口。我确实遇到了一个实用程序,它似乎实现了类似上述算法的东西-但它是在C中,因此,显然会有一些语言/库的差异。不过还是有帮助的。祝你好运读了这篇关于udp打孔的文章后,我意识到我不太了解一些事情:当服务器将数据包更准确地发送回客户机的nat地址时,它会将该端口指定为nat的N端口,该端口是它最后发起的端口,还是它侦听的客户机端口?Java udp广播到NAT后面的客户端,java,sockets,udp,broadcast,nat,Java,Sockets,Udp,Broadcast,Nat,我想知道是否有办法通过udp套接字为NAT后面的客户端广播数据。我发现了许多示例,其中服务器向多播地址发送数据,而客户端在固定端口上侦听数据。但是,如果它们之间存在NAT,则需要将包发送到不同的端口,这取决于NAT如何创建端口转换,对吗?那么,这里的解决方案是什么呢?谷歌搜索UDP打孔应该会引导您走向正确的方向。这里描述了一种可能的算法:我已经读过了,但是我想知道是否有一个java示例。这种技术对于ex来说稍微复杂一些。需要传输额外的包来保持连接的有效性。不幸的是,我现在还不知道Java示例。你