Indy UDPServer 的 PeerIP 为什么是其内网IP, 而不是NAT后的IP ?
情况是这样:
一台有公网IP(59.56.105.88)的机子上运行着UDPServer监听(2046)端口
一部装有"动感地带"的WM5手机上通过WAP上网
WAP的设置是通过10.0.0.172:9201代理
例:
手机上网后获得地址10.25.34.156
手机通过端口(1099)给(59.56.105.88:2046)发送UDP数据
Server端收到信息后通过ABinding.PeerIP/Port获取手机端的IP和端口
居然直接就是10.25.34.156:1099
很显然,直接通过ABinding.PeerIP/Port发送回去的数据手机端是收不到的
问题:
为什么不是NAT转发过来的网关IP与端口呢?
是移动NAT限制还是WAP模式限制UDP为单向?
如果可以的话如何获取其NAT后的网关IP和端口?
实在不行的话如何实现设想中的双向UDP呢?