qq工作原理
来源:互联网 发布:宫刑太可怕了 知乎 编辑:程序博客网 时间:2024/04/29 19:54
QQ的工作原理是怎么样的?它是怎么样支持那么多用户同时登陆的?它的后台服务器是怎么设置的?是不是每个用户登陆的时候都要先登陆到服务器啊?那和某个好友聊天的时候是不是就换成点对点的了?怎么转换的?它用的是Socket技术吗?还有别的网络技术吗?它是怎么实现发送离线消息的?怎么实现群发消息的呢?
回答:
1.聊天时候时候用的点到点,对方离线的时候才发给服务器。
当然,登陆的时候首先要向服务器注册其IP地址和端口信息
2.登陆时发送消息告诉server说你登陆而已,由server通知你的好友说你上线(如有必要)
其他的基本不用通过server,那么用户多少有什么关系
user<->user聊天都是自己建立连接的,除非建立不了还会又server中转,好友不在线也又server中转
3.QQ使用的是UDP+TCP,一般默认的是UDP-->无状态连接的,好友之间应该是P2P的,你用D7的IDUDPServer都能做的 QQ有集群服务器. 补充:在比较安全的局域网中一般使用无连接的UDP协议,在相对不安全的广域网中使用的是面向连接的TCP协议。
4.P2P连接:
(1.)用户登录服务器,服务得到用户的经过NAT的公网IP;如;211.10.5.32:3300(此端口号由网关产生,负责将外网数据发给内网的指定主机,即你所登录的位置),
(2.)用户得到好友的公网IP后(通过服务器得到),发送握手包,建立彼此方向的打洞包(随便发点数据就行,重要的是一个方向,如内网A发一个数据包给外网B,此时B才有可能发送数据给A,让A成功接收,否则A的网关会丢弃此包,了解???!!)
(3.)双方通信成功,
(4.)如果NAT的类型比较特殊会有: 内网A发数据到S,网关NAT时建立一个端口3300,若此时A再发数据到B,有的NAT会在此端口上加一个SESSION,端口不变,而有的NAT会新建立一个端口,此时P2P将失效,这是一个很值得讨论和解决的问题,因为我也正在遇到这个问题.
5.根据我用防火墙监测试的结果,QQ的连接过程如下:
在登录的时候,QQ会先和服务器建立一个Tcp/iP 连接,
然后会建立4个UDP服务器,监听4000, 6000, 6001, 1085端口,如
果有消息的话,会随机的选用一个和客户端连接!
- qq工作原理
- QQ工作原理
- 顶贴机的工作原理(qq:525093551 发布)
- 即时通讯软件(QQ)的工作原理
- MSN,QQ,IP Messenger,飞鸽传书,的工作原理解析
- QQ原理
- qq原理
- QQ原理
- qq原理
- 传文件选MSN还是QQ? 揭秘IM传输工作原理
- 传文件选MSN还是QQ 揭秘IM传输工作原理
- 【收藏】Android动态加载classLoader工作机制 & QQ空间热补丁hotFix原理
- 工作原理
- QQ尾巴制作原理
- QQ通信原理
- QQ 通讯原理
- qq传输文件原理
- 转)QQ通信原理
- 什么是抽象
- C#中C/C++程序员注意问题
- 成功率统计(出报表时很好用)
- numberaxis.setStandardTickUnits(NumberAxis.createIntegerTickUnits()); //关键就是这句
- 什么是Android?
- qq工作原理
- 使用axis2构建webservice时客户端内存不断增长导致应用服务器频繁重启的解决方案
- jsp html区别
- 利用NetworkInterface获取服务器MAC地址
- 第一篇博客
- android应用程序框架
- How to send mail by EMS - 如何实现邮件特快专递
- TcpListener类获得客户连接的IP地址
- DataSet,DataTable,DataReader,DataAdapter区别(搞笑版)