我的c端是用了IdUDPServer
    s端也是用了IdUDPServer现在客户端c都可以和服务器通信了,服务器端也已经可以告诉通信双方(c1,c2)相互的外网ip和port。就差怎么打洞了?郁闷中各位高手帮忙啊!能给点代码吗?c1的IdUDPServer1.send(...)到s
c2的IdUDPServer1.send(...)到ss把双方的外网ip&port分别告诉对方之后,再怎么发?

解决方案 »

  1.   

    c1 根据s发过来的C2的IP,Port。向C2发送消息;
    同时 c2 根据s发过来的C1的IP,Port。向C1发送消息.
    若能收到消息,则”UDP打洞“成功
      

  2.   

    按照一般情况,象taoff(阿飞)说的那样,能成功吗
      

  3.   

    盒子上有一个
    www.2ccc.com上去找找,然后自己完善他
      

  4.   

    http://2ccc.com/article.asp?articleid=1993
      

  5.   

    From:  http://www.ppcn.net/n1306c2.aspx
    P2P 之 UDP穿透NAT的原理与实现(附源代码)
    原创:shootingstars
    参考:http://midcom-p2p.sourceforge.net/draft-ford-midcom-p2p-01.txt
      

  6.   

    这些资料我看过了,正是看过这些资料我才会双方都用IdUDPServer,能有点delphi的关键代码吗
    就是怎么向对方发消息的代码
      

  7.   

    我刚写好,但是没用indy组件,我直接用winsock的,可以聊天,传文件(安全的带重传的UDP)。
    在双方互知对方外网IP和Port后,发一个自己定义的数据到那个IP:Port,注意要不断的互发,以维持这种信任。之后server就没用了,p2p就可以正常通信了