rt

解决方案 »

  1.   

    不是.如果双方都是internet,直接udp互发
    如果有intranet的,就用端口映射.
      

  2.   

    那VB的socket控件可以实现UDP互发吗?
      

  3.   

    winsock设置好udp协议,然后设置本地远程端口,bind,就可以发送了.
      

  4.   

    我的意见,关于QQ的思想,我有过一段时间的研究,基本实现方法如下:本地有一个数据库存储关于从服务器上下载的好友列表,1。一旦你上线,必须登陆服务器。这时从服务器上下载好友列表,以及每一个好友的ip地址2。一旦你将某人加为好友,需要更新服务器数据库,同时更新本地数据库。3。一旦你下线,就需要更新服务器数据库。同时由服务器想你的每一个线上的好友发出你下线的 信息(你下线一会,你的好友就将发现你下线)。你的好友上线时就会发现你不在线上。总的说来,在你上线时才会访问服务器,以后将是你跟你的好友之间点对点的通信,将不会跟服务器相关,这样才能减轻服务器大量的负担,可以想象,如果每个人发出去的每一条信息都得通过服务器转发,那将对资源造成极大的浪费,也是服务器所负担不起的。如果这样,快速度是难以想象的。他遵循一条原则,就是如果不需要访问服务器时就不要访问服务器。只有在必需的时候才访问服务器,比如登陆时,查找时,需要加入好友时等等。
      

  5.   

    我的意见,关于QQ的思想,我有过一段时间的研究,基本实现方法如下:本地有一个数据库存储关于从服务器上下载的好友列表,1。一旦你上线,必须登陆服务器。这时从服务器上下载好友列表,以及每一个好友的ip地址2。一旦你将某人加为好友,需要更新服务器数据库,同时更新本地数据库。3。一旦你下线,就需要更新服务器数据库。同时由服务器想你的每一个线上的好友发出你下线的 信息(你下线一会,你的好友就将发现你下线)。你的好友上线时就会发现你不在线上。总的说来,在你上线时才会访问服务器,以后将是你跟你的好友之间点对点的通信,将不会跟服务器相关,这样才能减轻服务器大量的负担,可以想象,如果每个人发出去的每一条信息都得通过服务器转发,那将对资源造成极大的浪费,也是服务器所负担不起的。如果这样,快速度是难以想象的。他遵循一条原则,就是如果不需要访问服务器时就不要访问服务器。只有在必需的时候才访问服务器,比如登陆时,查找时,需要加入好友时等等。
      

  6.   

    用vc写的,udp协议,将自己的消息发送到tencent的服务器上面去,在本地用了三个线程,分别处理界面,和发送。开始默认使用本机的4000port,如果4000被用了,就用4001...
      

  7.   

    一点补充:
        1.如果你得好友不在线或者隐身或者无法直接发送到,数据发送到服务器由服务器进行转发。
        2.QQ2003已经增加了TCP连接方式,从目前我的使用情况上看大部分情况下新版的QQ会使用TCP联接(即使我设置了udp联接过后也会自动变成TCP的),不知道是不是因为我的网络环境问题。
        3.QQ的数据经过高强度加密,呵呵,载没有搞清楚协议之前休想自己编程序和QQ进行通讯
      

  8.   

    首先我要非常感谢各位大哥的讲解,UDP在LAN中的通讯我是会的,关键是,怎样让两个网关后面的电脑通讯?
    如:有两个网吧网关分别是
    A(220.114.3.172)和B(61.68.128.39),
    有电脑A5(192.168.1.33)和B5(192.168.0.232)分别在那两个网吧,
    电脑A5是通过网关A上网,B5是通过网关B上网,
    请问这个时候要实现UDP让A5和B5通讯,那么SOCKET的端口应该怎样绑定啦?
      

  9.   

    为什么QQ的信息能进入局域网内部的机子?(prettywolf) 200 163 8-14 20:54 管理
    http://expert.csdn.net/Expert/TopicView1.asp?id=1564113
      

  10.   

    A5用UDP出去WAN,A就会映射一个端口指向A5出WAN的端口
    B5用UDP出去WAN,B就会映射一个端口指向B5出WAN的端口
    于是他们同时找到一个服务器,服务器记录下他们各自的网关上的端口映射的端口
    然后他们向服务器索要对方的端口
    于是
    他们就可以用对方映射的端口,直接发送数据。原理是这样
    代码我没有