位于两个不同城市的内网,如何实现UDP通信?
深宇 2005-03-31 01:39:56 据说通过udp hole技术可以解决,但我尝试了一下,有些内网之间可以,但有些内网之间却不可以?何解?
我是这样做的,在一台有公网IP的机器上放置一个P2Pserver,用作不同内网里的客户端IP和port信息的交换。
上海的一个客户端ClientA,北京的一个客户端ClientB,ClientA通过P2Pserver得到ClientB的IP和Port,ClientB通过P2Pserver得到ClientA的IP和Port,然后ClientA不停的向ClientB发送信息,ClientB同时也不停的向ClientA发送信息,按理说,这样做的话,就等于ClientA不停的向ClientB方向打洞,ClientB也不停的向ClientA方向打洞,这样ClientA或ClientB是可以收到对方发出的信息的
但,不知为何,有的网络可以通,但有的网络却不通,ClientA和ClientB都是可以得到对方的IP和port信息的。
百思不得其解,上网搜索相关的信息,最多也只是说需要向对方打洞就可以通的,但为何我试验的时候,有些网络不通呢?而且比例还比较高,有些资料说,Symmetric NAT会导致打洞失败,但Symmetric NAT的比例不至于这么高吧?
望高手指点迷津!