我研究的是
QQ2007beta4
版本的通信原理,相信之后的版本暂时也不会有改动。。
1
、登陆。不管
UDP
还是
TCP
,最终登陆成功之后,
QQ
都会有一个
TCP
连接来保持在线状态。这个
TCP
连接的远程端口一般是
80
,采用
UDP
方式登陆的时候,端口是
8000
。因此,假如你所在的网络开放了
80
端口(
80
端口是最常用端口。。就是通常访问
Web
的端口,禁掉它的话,你的网络对你来说价值已经不大了),但没有屏蔽腾讯的服务器
IP
,恭喜你,你是可以登陆成功
QQ
的。
2
、聊天消息通信。采用
UDP
协议,通过服务器中转方式。因此,现在的
IP
侦探在你仅仅跟对方发送聊天消息的时候是无法获取到
IP
的。大家都知道,
UDP
协议是不可靠协议,它只管发送,不管对方是否收到的,但它的传输很高效。但是,作为聊天软件,怎么可以采用这样的不可靠方式来传输消息呢?于是,腾讯采用了上层协议来保证可靠传输:如果客户端使用
UDP
协议发出消息后,服务器收到该包,需要使用
UDP
协议发回一个应答包。如此来保证消息可以无遗漏传输。之所以会发生在客户端明明看到
“
消息发送失败
”
但对方又收到了这个消息
的情况,就是因为客户端发出的消息服务器已经收到并转发成功,但客户端由于网络原因没有收到服务器的应答包引起的。
3
、文件
/
自定义表情传送。大家都知道,
QQ
可以传送文件,可以发送自定义表情。先说官方表情。官方表情实际发送的是命令字,而没有发送表情。客户端收到命令字后,会自动解释为对应的表情。因此,
QQ2007
正式版的客户端发出的新版表情,在
2007beta4
及以前的版本无法找到相对应的表情,就无法解释,看到的就会是空白信息,但查聊天记录就会有
[
表情
]
字样。自定义表情的传送是以文件传输方式进行的。下面说文件传输方式:
A
要向
B
发送一个文件,于是发出一个文件传送请求。服务器收到这个文件传送请求后,转发给
B
,同时或者在
B
应答后,将
A
的
IP
地址同时发送给
B
。
B
这个时候就得到了
A
的真实
IP
。这里的
IP
是你的本机
IP
。也就是说,如果
A
处在内网,
B
得到的地址就是一个内网地址。
B
得到了
A
的地址之后,就会尝试去连接
A
。如果
B
也处于内网,那么,显然
A
跟
B
之间的连接是无法建立的。这个时候,客户端就会请求服务器进行文件中转。因为服务器具有公网
IP
,处在内网的
A
跟
B
都是可以连接到服务器的,于是,
A
跟
B
的文件传送就通过服务器中转的方式,顺利进行。(注:服务器文件中转使用
443
端口)
“
穿透内网
”
的原理就是这样的。至于其中的程序细节,暂时还没研究到。。谁有空就研究研究吧,呵呵
4
、小结。结合
1
跟
2
,可以知道,如果一个局域网只开放
80
端口,
QQ
是可以登陆成功的,也可以进行聊天。但传送文件也是不可以的,除非你们都在同一个内网。如果局域网还同时开放
443
端口,那么,恭喜你,
QQ
的功能你都可以正常使用
分享到:
相关推荐
通信工程,电子信息工程专业通信原理课程实验课,matlab源代码加实验效果图
通信必须有信息的发出者,信源 发出的是自身的信息,也可能是从别的信源获得的信息,可能是 人或机器 信息的发出者和通信的发起者不是同一含义,通信也可能由接收 者发起 2) 通信必须有信息的接受者,信宿 通信的...
QQ通信原理分析,为什么只要可以连上互联网的计算机都可以用QQ相互建立通信,而不需要固定IP
广东工业大学10通信原理A卷 广工考卷,希望大家好好复习!
QQ聊天程序的网络通信原理及编程
文章介绍了QQ通信原理
QQ的工作原理,本人正在学习网络通信,共享资源
二、 通信原理::利用P2P之UDP穿透Cone(锥型)NAPT原理。 三、 系统特点: 1、所有会话命令均封装成对象。 2、每个命令对象都有Send(发送)与Exec(执行)方法。Send方法用于把对象(自己)发到对方,Exec方法完成...
通信原理(第六版)1-7章课后答案 通信原理 第六版 课后习题答案
QQ是如何通信的,是如何交流的?QQ的通信交流原理。深入剖析QQ的运行机制
对于那些自己学习通信原理的人来说应该有所帮助。
Q Q 聊天程序在通信方式上采用的是C/S 通信模式,即客户/服务模式。具体操作原理是将一个应用编制功能不同的两个部分,并使其在两台或多台计算机应用。
北航通信原理期末试题,可作为考研复习使用
华中科技大学本科教学课件,通信原理,电子,通信等专业
通信原理实验指导书正式版
通信原理实验说明书
电子科技大学中山学院通信原理复习资料:往年卷,模拟题,帮扶资料。。。
源代码的分享意味着我们可以深入理解飞鸽的工作原理,学习如何实现类似的功能。通过分析源码,我们可以探索以下几个关键知识点: 1. **多线程编程**:在即时通信工具中,多线程技术是必不可少的。飞鸽可能使用多...