QQ等即时通讯软件的应用研究

合集下载
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

[XXXX大学XXX学院XXX班]

QQ等即时通讯软件

的应用研究

[ ]

[学号: ]

[摘要:即时通讯系统是当前一个热门应用软件,文中介绍了国内主流的即时通讯系统的设计与实现,通过对服务器及客户端架构的分析和设计、TCP/UDP协议等关键技术的应用, 说明了即时通讯软件的基本原理。]

QQ等即时通讯软件的应用研究

XXX大学XXX学院,XXX,学号:XXXXXXX

摘要:即时通讯系统是当前一个热门应用软件,文中介绍了国内主流的即时通讯系统的设计与实现,通过对服务器及客户端架构的分析和设计、TCP/UDP协议等关键技术的应用, 说明了即时通讯软件的基本原理。

关键词:即时通讯系统、TCP、UDP、服务器、客户端

正文:

一、IM技术概念

IM技术全称Instant Messaging,中文翻译“即时通讯”,它是一种使人们能在网上识别在线用户并与他们实时交换消息的技术,是电子邮件发明以来迅速崛起的在线通讯方式。IM的出现和互联网有着密不可分的关系,IM完全基于TCP/IP网络协议族实现,而TCP/IP协议族则是整个互联网得以实现的技术基础。最早出现即时通讯协议是IRC(Internet Relay Chat),但是可惜的是它仅能单纯的使用文字、符号的方式通过互联网进行交谈和沟通。随着互连网变得高度发达,即时通讯也变得远不止聊天这么简单,自1996年第一个IM产品ICQ发明后,IM的技术和功能也开始基本成型,语音、视频、文件共享、短信发送等高级信息交换功能都可以在IM工具上实现,于是功能强大的IM软件便足以搭建一个完整的通信交流平台。目前最具代表性的几款的IM通讯软件有MSN、Google Talk、Yahoo、Messenger 、腾讯QQ等。

二、即时通讯系统实现及关键技术

1、即时通讯软件服务器的实现

系统由Login Server负责接收IM Server的连接, 可以实现多个IM Server

的连接到登录服务器, IM Server存放在IM Server List 队列中, Login Server 和IM Server 通过CDatabase 类访问数据库, 实现用户身份验证、好友列表获取等功能. Login Server 和IM Server分别创建CUDP Message对象,由它开启Socket 监听客户端的连接并处理U DP 消息,进行数据收发. Client 登录到Login Server后,通过Authorize User 函数与数据库交互验证用户是否为合法用户,然后通过Get IM Server 函数为用户分配一个IM Server, 负载均衡策略在Get IM Server 函数中实现, 通过分析每个服务器的人员状况选择一个负载最轻的服务器分配给Client .Client 收到Login Server 的消息回复后能够获取到IM Server 的IP 和端口, 此时Client 向IM Server 登录。IM Server 接受用户登入、验证用户合法性、获取用户信息返回给Client, 到此用户成功登入系统, 同时IM Server 提供了Add Friend( 添加好友) 、Delete Friend( 删除好友) , 添加删除分组等函数。

2、即时通讯软件客户端的实现

Client 的主要任务是实现用户之间的通讯功能及系统相关设置等. Client 通讯功能分为: 消息通讯、文件传输、音视频通讯及会议室等. 为了便于开发, 我们将其设计成分层结构: 数据通讯层, 逻辑控制层, 界面展现层。数据通讯层负责底层通讯, 与服务器和其他客户端交互, 确保数据收发正确, 收到数据后根据相应的消息号发给不同的控制层, 例如消息控制中心、文件传输中心、音视频控制中心和会议室控制中心。

三、IM技术原理和工作方式

典型的IM工作方式如下:登陆IM通讯中心(IM通讯服务器),获取一个自建立的历史的交流对象列表(好友列表),然后自身标志为在线状态,当好友列表中的某人在任何时候登录上线并试图通过你的计算机联系你时,IM系统会发一个消息提醒你,然后你能与他建立一个聊天会话通道进行各种消息如键入文字、通过语音等的交流。IM的基本技术原理如下:

第一步,用户A输入自己的用户名和密码登录IM服务器,服务器通过读取用户数据库来验证用户身份,如果验证通过,登记用户A的IP地址、IM客户端软件的版本号及使用的TCP/UDP端口号,然后返回用户A登录成功的标志,此时用户A在IM系统中的状态为在线(Online Presence),客户端软件每隔一段时间要向服务器报告其在线的状况,我们称之为“心跳”。如果服务器在一定的时间间隔内没有接收到用户的“心跳”,则服务器认定该用户离线,向其好友发送他的状态变化。

一般通讯应该在UDP协议和TCP协议之间选择。

TCP(Transmission Control Protocol,传输控制协议)是基于连接的协议,也就是说,在正式收发数据前,必须和对方建立可靠的连接。一个TCP连接必须要经过三次“对话”才能建立起来。三次对话的过程可简单看作:主机A向主机B发出连接请求数据包:“我想给你发数据,可以吗?”,这是第一次对话;主机B向主机A发送同意连接和要求同步(同步就是两台主机一个在发送,一个在接收,协调工作)的数据包:“可以,你什么时候发?”,这是第二次对话;主机A再发出一个数据包确认主机B的要求同步:“我现在就发,你接着吧!”,这是第三次对话。三次“对话”的目的是使数据包的发送和接收同步,经过三次“对话”之后,主机A才向主机B正式发送数据。

UDP(User Data Protocol,用户数据报协议)是与TCP相对应的协议。它是面向非连接的协议,它不与对方建立连接,而是直接就把数据包发送过去!没有建立连接的过程。正因为UDP协议没有连接的过程,所以它的通信效果高;但也正因为如此,它的可靠性不如TCP协议高,UDP适用于一次只传送少量数据、对可靠性要求不高的应用环境。QQ就使用UDP发消息,因此有时会出现收不到消息的情况。

相关文档
最新文档