这段时间来我一直在想着UDP通信的一项关键技术,但这也是每位编程爱好都需要的,问题是UDP协议来穿透ADSL自动路由拨号的猫(这个也一直是我们的最大疑问),这猫好像只能向外发UDP数据包,但另一台主机要发进来就不容易,或者两端主机都处于NAT之后(不属于使用软件拨号的猫),这思路就越来越难。
=======================================================================
按原理应该可以,因为按软件拨号是可以的,但使用ADSL的猫的路由拨号就不行了。
例知道两台主机的IP如下:
1、Client A(其IP为:218.71.65.66)
   设为自动路由拨号上网,,当然这IP是猫自动分配的,这在路由中可以查找IP。
2、Client B(其IP为:218.71.65.67)
   设为有软件ADSL拨号上网,比如是WindowsXP拨号上网或其它拨号软件等。
UDP通信情况如下:
当ClientA发送数据包给ClientB可以。
当ClientB发送数据包给ClientA不行(数据包不能通过),原理是如果当A没有发给B这当然不能通过(因为A在NAT之后),原因是A已发给B,B再发A应该是行的。
======================================================================
这好像我个人认为是猫带有防火墙,只开发21,23,80的端口,从而限制数据包ClientA的数据只能出不能进的原因,所以ClientB发送数据包到ClientA被过滤了。我只在阿尔卡特的猫上试了试UDP的通信,其它猫没试过,也不知道行不行。
======================================================================
如果有高手大侠到来,请指教,有没有其它的方法可以穿透猫的自动拨号路由或防火墙技术。

解决方案 »

  1.   

    楼上兄弟,事情是这样的,因为A不是软件拨号上网的(他是路由自动拨号),否则这事情就好办了。在硬件中做端口映射是可以,要的是在不需要的情况下能使用数据包通过啊在软件拨号中这样是可以的
    A如果在NAT之后的话,我们可以先A发B,B再发A就行了。
    在硬件ADSL路由拨号中不行
    A应该算在NAT之后。A发B,B再发A就不行的。
      

  2.   

    我也遇到这个问题,我在NAT后,外网和我UDP通讯有问题
      

  3.   

    只要不是早期的NAT,设法让双方得到对方的NAT上的IP和端口地址,然后互相打洞就可以了,不难!
      

  4.   

    对啊,就是怎样象QQ一样进入,我遇到的问题是,找自己IP结果是路由后的IP,我也想知怎么得到路由器的外网IP。帮你顶一下!