UDP是基于无连接的点对点协议,比如两台远程的计算机的通信,必须
指定双方的远程IP地址才能通信
现在是问题是:其中一方如果不是主机,而是在一个局域网内连接别的主机上网
那么要如何双方才通信呢
我试了一下,发现如果指定是连接主机的远程IP,那台连接的主机的电脑无法接到另一方收到的信息。
有什么办法解决没有,就是机器在局域网内连接别人的主上网,也可以进行外部的UDP通信

解决方案 »

  1.   

    看一下这个我回答你大概就知道了
    http://community.csdn.net/Expert/topic/2687/2687744.xml?temp=.9501459
      

  2.   

    "把内网计算机映射到网关IP的一个端口上",这句话我看得懂,但不知怎么实现呀,怎么映射呀,还有,我看了那个贴子了,受益,但还是不大懂。
    现在我说一个具体的例子,然后请各位教怎么能够通信吧:
    我用IDUDPClient,和IDUDPServer来进行UDP传输
    此时,IDUDPServer在一个内网的一个机中,这个机靠连别人的主机上网,那个主机的IP
    是219.65.48.123。
    我在IDUDPClient中设了这个IP已经设了端口,这个端口和Server那边的端口一样
    但那边收不到CLient发过去的信息请问这种情况要怎么做。请说具体一点
      

  3.   

    udp在越过网关时会生成端口映射,这就是为什么要登录服务器,登录服器必需要在公网上的一端,以取得生成的端口
      你再好好看看我的回答或再研究一下QQ的最基本原理就清楚了
      

  4.   

    在219.65.48.123的主机上做端口映射,与程序没有关系,就是把你
    IDUDPServer的监听的内网的IP和端口映射到219.65.48.123的一个端口,到网上找找,这是很基础的网络知识。
    huojiehai(海天子) 说的意思是跑IDUDPServer的机器必须是外网IP