首先,第一个问题,QQ是怎样运作的,为什么QQ可以连接两台电脑,使其互相通讯,具体的原理是什么?
第二:为什么我的VB的Winsock程序却失败了(如果将RemotePort属性设为127.0.0.1,就是自己的电脑就行),是不是我漏了什么?(具体请看我的另一份帖:http://topic.csdn.net/u/20110227/23/0e088617-c40f-4ed6-96ba-0df2948c1f9c.html)本人菜鸟,请教各位大虾。

解决方案 »

  1.   

    QQ是通过QQ服务器中转的(QQ使用无连接协议UDP)。udp协议可以实现点对点传输(即可以不用中转),在测试UDP协议程序时最好使用IP而不使用计算机名,因为大多数时候在互联网上是找不到你要的计算机名的。如果对方在内网代理上互联网,还要设置路由器转发功能,慢慢学吧,别着急。
      

  2.   

    如果是内外网互访的问题,简单的可能涉及到端口映射,或者穿越NAT、服务器中转?
      

  3.   

    很久以前用winsock做过一个可以外网通讯的聊天室,现在忘得差不多了。
      

  4.   

    winsock.ocx是个非常不稳定的家伙,你总会在一些机器上不能正常使用它所以,一般情况下抛弃winsock.ocx吧,使用ws2_32.dll来自己创建qq就是这样做的。
      

  5.   

    QQ使用UDP协议,你尝试一下使用UDP协议试一试?
      

  6.   

    自由一点吧,楼猪,请你抛弃winsock.ocx吧,用ws2_32.dll来自己创建,包楼主满意滴
      

  7.   

    qq有N多服务器,固定ip的网络地址,你有么?
    你有也行的
      

  8.   

           玩过路由的人都知道,两台在不同内网的电脑是不能直接相连进行数据交流的,必须要在路由器里设置端口映射。当然,像在自己家,有管理权限,想怎么射就怎么射 到了别人的电脑上,就不能乱搞了。可素,两台电脑要直连,又没有权限设置端口映射,咋办? 这时候就要打洞了。
           关于打洞原理,看看下图。
            两台电脑不能直接相连,那就需要一台服务器。不过,不要以为服务器是用来中转的。那打洞就没有任何意义了,它只是一个媒婆,负责把电脑A介绍给电脑B认识。这个媒婆,到了电脑A的家,偷偷把一个小门开了,抄下门牌号,再去电脑B家,把电脑A的门牌号告诉电脑B,也偷偷把一小门开了,抄下门牌号告诉电脑A。开了门,并让两方知道对方的门牌号,媒婆的任务也就完成了。剩下的就由它们两个想怎么搞就怎么搞了。
           星期一、三、五,电脑A走出自己家路由,来到电脑B的路由,通过小门,进入电脑B家找到电脑B开战。
           星期二、四、六,电脑B走出自己家路由,来到电脑A的路由,通过小门,进入电脑A家找到电脑A开战。
           星期天,休养生息。       简单地说就是:两台电脑向各自的路由申请访问服务器。路由通过严谨的考虑后,终于决定映射一个端口了。服务器把两方的端口告诉对方,双方就可以通过这个端口相连了。这就是传说中的‘打洞’了。