如题,
1、客户端都具有公网IP或是在同一个内网时,这个可以解决。就是作为接收端的客户端在bind成功后,把UDP的端口通过服务端告知作为发送端的客户,然后进行UDP通信。
2、问题就出在这里了,当客户端是处于不同的内网时(比如有NAT设备),那要怎么办了?

解决方案 »

  1.   

    利用一些NAT穿透的技术,比如简单的STUN。
      

  2.   

    客户端和服务器端是TCP还是UDP方式连接??两种解决的办法有点不同,TCP的较复杂一点
      估计问题是出在如何突破防火墙再去访问的问题,如单对单的建议用P2P打洞的技术(UDP用此法更好做),
        多对多建议采用建立一个公网服务器实行转发(采用链表管理的方法)很有效,前一阶段刚做过.
      

  3.   

    LS,我在标题中说了,客户端和服务端是TCP连接。而在客户端之间进行的是UDP连接。进行P2P打洞的时候,就像symmetic nat一样,不能确定新开的端口,这个才是问题所在。