当前位置:编程学习 > C#/ASP.NET >>

QQ是如何实现网络通迅的?

QQ是如何实现网络通迅的,我现在知道是QQ客户端先把信息发送到QQ服务器,那QQ服务器又怎么把信息发送至另一QQ客户端呢,是另一个QQ客户端不停的向服务端发送请求信息,还是由QQ服务器主动发信息到QQ客户端? --------------------编程问答-------------------- 当然是“主动发送”,稍微专业点的说法是“双工通讯”,如果你连什么是双工通讯都不知道。你也不必深究了。 --------------------编程问答--------------------
引用 1 楼  的回复:
当然是“主动发送”,稍微专业点的说法是“双工通讯”,如果你连什么是双工通讯都不知道。你也不必深究了。
佩服。。。。。。。。。。。。。。 --------------------编程问答--------------------
引用楼主  的回复:
QQ是如何实现网络通迅的,我现在知道是QQ客户端先把信息发送到QQ服务器,那QQ服务器又怎么把信息发送至另一QQ客户端呢,是另一个QQ客户端不停的向服务端发送请求信息,还是由QQ服务器主动发信息到QQ客户端?

QQ用的UDP协议,原理去看看网络通讯 --------------------编程问答-------------------- --------------------编程问答-------------------- Socket通讯


上网搜 Socket网络应用 --------------------编程问答--------------------
引用 3 楼  的回复:
QQ用的UDP协议,原理去看看网络通讯


这纯粹是道听途说。

QQ当然会使用Udp,但是只有很少的机会能够成功。所以它会在udp之后,使用tcp对很多端口再次连接,最后甚至尝试http方式对端口连接,直到不能通讯才作罢。

怎么能胡乱说QQ就仅仅是靠udp就通讯成功了呢?如果仅仅纠结在udp编写程序,你连20%的成功率都没有。 --------------------编程问答--------------------
引用 6 楼  的回复:
引用 3 楼  的回复:
QQ用的UDP协议,原理去看看网络通讯


这纯粹是道听途说。

QQ当然会使用Udp,但是只有很少的机会能够成功。所以它会在udp之后,使用tcp对很多端口再次连接,最后甚至尝试http方式对端口连接,直到不能通讯才作罢。

怎么能胡乱说QQ就仅仅是靠udp就通讯成功了呢?如果仅仅纠结在udp编写程序,你连20%的成功率都没有。

P哥,你说得对,QQ是共用TCP/UDP协议的。不过我也没说QQ就仅仅是靠udp啊。
QQ是既可以使用UDP也可以使用TCP,但默认优先使用的是UDP协议,UDP协议资源消耗小,发送速度快一些。UDP不能正常转发时,并且对于可靠性要求比较高的细腻系是会以TCP进行传送信息 --------------------编程问答-------------------- 可以选择



话说当年OICQ就是UDP的。。

翻到一篇老文,供参考

引用
发信人: ciert()
整理人: ciert(1999-11-29 09:42:37), 站内信件
我对Oicq目前协议的初步看法 

在粗略看了oicq采用的实现方式以后,我感觉非常失望。 
理由如下, 
OICQ协议完全采用UDP封装,众所周知,UDP是不可靠 
传输协议,但是效率比较高,同时协议封装和实现都很 
简单。TCP协议比UDP协议消耗更多的CPU时间,相比而言 
产生一个TCP连接和发送一个UDP包而言,TCP的开销很大, 
这在服务器端更加明显。 
但是,采用UDP包带来的首先是安全性问题。 

采用UDP能够轻易进行伪消息传递,产生一个任意源地址 
的UDP包都是非常简单的,这将为UDP包冒充带来福音(这是 
IP-Spoofing的一个小部分),TCP协议由于采用可靠传递 
和序列号认证,给仿冒带来巨大困难。 

……
--------------------编程问答--------------------
引用 7 楼  的回复:
引用 6 楼  的回复:

引用 3 楼  的回复:
QQ用的UDP协议,原理去看看网络通讯


这纯粹是道听途说。

QQ当然会使用Udp,但是只有很少的机会能够成功。所以它会在udp之后,使用tcp对很多端口再次连接,最后甚至尝试http方式对端口连接,直到不能通讯才作罢。

怎么能胡乱说QQ就仅仅是靠udp就通讯成功了呢?如果仅仅纠结在udp编写程序,你连20%的成功率……


做实验嘛。看看以前的人怎么解决自己问题的。


--------------------编程问答-------------------- 抓包器抓下来的似乎是OICQ,原来就是UDP的封装呢~~~ --------------------编程问答-------------------- 叫腾讯员工解释一下
补充:.NET技术 ,  C#
CopyRight © 2012 站长网 编程知识问答 www.zzzyk.com All Rights Reserved
部份技术文章来自网络,