江湖救急--UDP穿NAT问题 ( 积分: 300 )

  • 主题发起人 主题发起人 Another_eYes
  • 开始时间 开始时间
有2中nat 一种是端口绑定的 就是一个ip打了个洞 只能这个ip过 要是这种nat你就没戏了
 
clientA发送一个udp包给server此时server收到udp包的IP信息告诉clientB 然后再让clientB连接这个Ip和端口
 
我老婆肯定知道怎么解决这个问题
但可惜她现在睡了
她前几天刚才完成一个基于P2P的聊天程序,也遇到过这样的问题
后来解决了,但俺不知道她是怎么解决的
嘻嘻
 
我也遇到同样的问题,
www.ppcn.net 有一篇文档:《P2P之UDP穿透NAT的原理与实现(附源代码)》
根据其原理,不久前我也做了一个P2P的小东西,
ClientA,ClientB都能通过其外网IP与Server进行通信,
可ClientA与ClientB就是连接不上,不知是何原因?

此问题关注中,如果谁有好的解决方法,能否说一声,在此谢谢!!!
 
MSDN上给出的答案我觉得有可能是正确的: 是NAT未设置内网环回的原因. 因为我的ClientA 和ClientB都在同一个NAT后, 因此它们的公网IP是一样的, 不同的只是公网端口, 而即使是cone NAT也是默认不支持同一个公网IP之间的UDP穿透的.
--------------------------------------------------------------------
就是以上这个原因.如果说同处一个 nat 下就要用内部IP和端口进行通讯.
你可以对公网IP进行比较以检查是否在同一个NAT 下面.
 
后退
顶部