嘿,我只是网络方面的初学者。
假设在wifi和GPRS / 3G连接中有Nat路由器,是否可以使用Internet上的套接字将两个android设备彼此连接,而无需使用任何中间专用服务器。
听说您需要先将传出消息发送到其他设备,然后只有NAT才能允许该设备回复您。但是,当两个设备都位于NAT之后时,第一个消息或数据包将如何到达它们中的任何一个?
编辑:观察->当我查询我的公共IP地址的位置时,我会得到随机的位置
像其他城市,有时其他州一样!!!怎么了?谁能解释?
最佳答案
这种解决方案的总体设计涉及第三方服务器的使用。为了使客户端彼此连接,对方必须知道其公共IP(即NAT IP)。当我必须进行类似操作时,我实现了STUN,这是用于建立对等连接的ICE技术的一部分。 STUN同时支持TCP和UDP通信。如果您想了解STUN,还应该阅读有关TURN的信息。
即使STUN要求第三方用户才能使客户端直接连接,但仍有许多公共STUN服务器可用。这是one of the lists快速Google搜索。