QQ的聊天形式是p2p,在局域网很容易实现.
但比如在Internet上一个局域网(通过一个外网IP上网)中的一台主机与另一台同样情况的主机通信应该怎么办?

解决方案 »

  1.   

    可以在网络上找到一篇文章讲述如何通过middlebox来实现p2p
    http://www.cnblogs.com/epan/articles/98944.html
      

  2.   

    UDP连接方式
    a sendto b A可以收到B的信息
    b sendto a B可以收到A的信息
    虚拟连接成功
      

  3.   

    在从内网向外网通信的时候,会分配一个session(可理解为端口),可以通过服务器(存储,中转作用)获得外网IP和映射到内网特定主机的session,从而使得通信成为可能!!
    要注意的是不能直接利用session号(至少是第一次)向通信方发送数据包,这样对方网络会丢掉这个数据包.
      

  4.   

    语音用acm控件就可以了,不然用acm系列的api写也行,vc有一个nettalk的代码,你可以下载去看看
    www.playicq.com应该就有 
    视频可以考虑用vfw(上面的代码里面也有,他就是用vfw的api写视频的),你也可以用api写,他的控件有vediocap,或是可以用dshow,控件有dspack
    vfw相对是比较老的,dshow比较新,听说有部分摄像头现在不支持vfw了