我使用基于java的UDP套接字与3G模块通信; 但是每次接收数据包的端口(有时是IP地址)都会发生变化,这是非常令人惊讶的.这表示我无法为3G模块分配固定的IP /端口并与之通信,但仅依靠传入的数据包来获取目的地信息.谁能告诉我为什么?通过3G和普通互联网的TCP/UDP连接有什么区别?提前感谢!
移动运营商通常都有NAT防火墙.尝试通过发送应用程序可能忽略的UDP数据包来保持UDP"会话"活跃.可能需要每30秒发送一次以保持NAT映射处于活动状态.
如果移动运营商的NAT防火墙没有从UDP源ip /端口目标IP /端口四重接收数据包,它将删除它并在应用程序的下一个数据包到达时分配新的IP /端口.