在网上载了个UDP协议的聊天程序demo,在局域网能实现,但是放到外网就不行了。有去了解了NAT 打洞方面的东西。但是我是本地发送到服务器,按理说不存在打洞一说,我只是想先实现本地发送信息到服务器,路由器会自动映射一个ip和端口往服务器发消息的。
网上那些打洞原理都看了,我的理解是:A、B客户端,C服务端,需要A、B分别跟C通信之后,由C分别获取A、B在路由器映射好的IP和端口,然后就能实现A、B之间的通信。
但我在实现A与C之间的通信就实现不了,求各位大大们给我一点启示,到底是哪里出了问题。谢谢

解决方案 »

  1.   

    http://topic.csdn.net/u/20120901/09/33b765ad-8e2e-485f-9722-26e049542c03.html
      

  2.   

    本地 往服务器上 发消息 肯定没问题,但是 服务器上的程序 是不能主动 post消息出来,你可以本地 不断的取服务器取数据
      

  3.   

    也不是不可以,如果你不是网关,没权限就不行,要在路由上映射的,我们用的是一个外网IP的,这个IP 下面有很多人用,你发那一个? 要映射才行
      

  4.   

    我的确没有尝试过,请教一下,如果客户端没有服务器发消息,服务器知道客户端IP ,能主动Post数据到你局域网上的一个客户端吗,可能多个哦。?客户端post服务器响应,这个肯定可以啊,这点赞同你的观点
      

  5.   

    谢谢 yonglaixiazaide  和  SocketUpEx  的回答我现在的问题是我本地IP为192.168.1.110 往 23.19.236.189  端口8889  上发小心   服务器压根就监听不到信息   可能问题出在哪里
      
      

  6.   

    我晕  突然想起来了  可能是因为我的服务器是美国的   在淘宝上买的美国的一个vps  不晓得是不是这个原因~~~~
      

  7.   

    你如果能ping的通,防火墙OK的话,服务器 应该改可以监控到,TCP的还是UDP的
      

  8.   

    防火墙确实是关闭的  ping了也能通  但消息就是到不了服务器~
      

  9.   

    改用TCP试下,国内的服务器可以通信吗
      

  10.   

    telnet端口试试 不行的话就不是程序代码问题
      

  11.   

    我下了以后没代码就是个EXE程序。