聊天工具便利了我们的生活,我们经常使用的QQ怎样实现通讯的呢?
首先我们需要知道网络里的两种协议,两种通讯协议分别为UDP和TCP通常网络之间的通讯都是由这两个协议支持的,这两种协议属于传输层,它可以传输文件。
UDP:首先UDP的传输效率很快,而且稍微安全一些,但是它不能保证数据是否成功传输,也就是说它只管传输不管到不到,如果在中途由于一些原因停止,也不会进行提醒。
TCP:TCP相对UDP的两个优点都比较低,但是TCP会有三次握手来建立连接,弥补了UDP数据传输不稳定的缺点。
我们使用的QQ是用的UDP协议,因为QQ起初就是使用的UDP协议,QQ从开始运营一直到现在都没有暂停过服务,所以协议是已经固定不可再调换的,QQ是通过服务器来弥补UDP传输不稳定的缺点的。我们使用的客户端用来连接服务器,我们要发送的内容会上传到服务器,以服务器作为介质来判断消息是否到达。
QQ的服务器有消息记录的功能,一般在手机端的储存为6个月,有可能你发的数据在服务器端是永远不会删除的。毕竟公司企业比较大,你发表的言论随时都可以提供调查。
QQ客户端的代码和服务端的代码不同,客户端有发送和接收功能但是QQ客户端不绑定自身的ip地址,端口一般为1080。在服务端,有一个ip地址绑定,程序中有一个接听循环,用来一直判断是否有用户发来信息,然后接收客户端发来的信息,再根据需要传送人的用户名进行连接,QQ在启动时会建立套接字,服务端会自动获取到客户端的ip地址,从而实现通讯。
QQ的文件传输,图片传输原理是一样的,都是基于UDP协议进行传输。