QQ视频的时候,数据是直接传输还是经过服务器?解决思路

QQ视频的时候,数据是直接传输还是经过服务器?
有人研究过这个问题吗?

一般来说,这个数据是没有必要经过服务器的,包括语音的时候应该也是一样,用过直接传输数据就行了。

问题是客户端直连的话,需要所谓的内网穿透,对于内网比较复杂的情况,这个很难保证能够连上。迅雷,还有视频软件可能都有这个技术,就是客户端互相传数据,但是迅雷被很多小区内的网络提供商屏蔽掉了,我们公司根本就看不了优库视频什么的,迅雷基本下不动。

作为一个通用的软件,希望能够在任何连到互联网的地方都能够使用(端口映射就不用想了),是不是就必须经过服务器来交换数据。

------解决方案--------------------
分太少啦,都懒得打字,我告诉你吧
腾讯QQ在两个客户端进行通信时,首先检查是否都是PC(可以通过软件的登录标识模式来区分)
如果都是PC,那么,可以进行P2P连接,也就是说数据不走服务器转发
如果能走P2P,那么,传输协议走的是UDP,包可以丢,但不能有过多延迟,这也是为什么你在视频时会出现画面不连贯的问题,那是包丢了造成的

如果P2P不成功,比如NAT的问题,那么只好走服务器中转

其实这个东西和离线图片是一个道理的

if(对方用户在线&&对方是PC用户&&可打通P2P)
{
那么走TCP方式的P2P传输图片给对方
}
else
{
 只好走服务器中转,通过服务器转发给用户
}