JAVA在线聊天系统
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
JIANGXI AGRICULTURAL UNIVERSITY
C语言通讯录
题目:C语言通讯录
学院:软件学院
姓名:姚郅威
学号: 20102015
专业:软件工程+英语
年级: 10年级
指导教师:易文龙
二0 10年12月
一、系统需求分析:
1.1即时聊天消息的一般需求
1.1.1一般即时消息格式需求
(1)所有实体必须至少使用一种消息格式;
(2)一般即时消息格式必须定义发信者和即时收件箱的标识;
(3)一般即时消息格式必须包含一个让接收者可以回消息的地址;
(4)一般即时信息格式必须允许对信息有效负载的编码和鉴别(非ASCII内容);
(5)必须提供扩展和注册即时消息格式的模式的机制。
1.1.2可靠性需求
协议必须存在机制,保证即时消息成功投递或者投递失败的时候,发信者获得足够的信息。
1.1.3性能需求
(1)即时消息的传输必须足够的迅速;
(2)即时消息的内容必须足够丰富;
(3)即时消息的长度尽量足够的长。
1.2 即时消息的协议需求
协议是一系列的步骤,它包括双方或者多方,设计它的目的是要完成一项任务。即时通讯协议,参与的双方或者多方是即时通讯的实体。协议必须是双方或者多方参与的,一方单独完成的就不算协议。这样在协议动作的过程中,双方必须交换信息,包括控制信息、状态信息等等。这些信息的格式必须是协议参与方同意并且遵循的。好的协议要求清楚、完整,每一步都必须有明确的定义,并且不会引起误解;对每种可能的情况必须规定具体的动作。
1.3 即时消息的安全需求
A发送即时消息M给B,有以下几种情况和相关需求:
(1)如果无法发送,A必须接到确认;
(2)如果M被投递了,B只能接受M一次;
(3)协议必须为B提供方法检查A发送了这条信息;
(4)协议必须允许B使用另一条即时信息,回复信息;
(5)协议必须为A提供方法保证没有其他个体C可以篡改M;
1.4 即时通讯系统需求
1.4.1 注册需求
(1)即时通讯系统拥有多个账户,允许多个用户注册;
(2)一个用户可以注册多个ID;
(3)注册所使用的帐号类型为字母ID。
1.4.2 通讯需求
(1)用户可以传输文本消息;
(2)用户可以传输RTF格式消息;
(3)用户可以加密/解密消息等。
二、系统总体设计:
在这里我们将该即时通讯系统命名为CHAT,现在对该系统进行总体设计。采用客户机/服务器(C/S)的模式来设计,是一个2层的C/S结构:应用程序服务器→应用程序客户端,其分层机构如图1所示。
图1 2层C/S结构示意图
客户层也叫做应用表示层,也就是我们说的客户端,这是应用程序的用户接口部分。给即时通讯工具设计一个客户层具有很多优点,这是因为客户层担负着用户与应用间的对话功能。它用于检查用户的输入数据,显示应用的输出数据。为了使用户能直接地进行操作,客户层需要使用图形用户接口。若通讯用户变更,系统只需要改写显示控制和数据检查程序就可以了,而不会影响其他两层。
服务层又叫做功能层,相当于应用的本体,它是将具体的业务处理逻辑编入程序中。例如,用户需要检查数据,系统设法将有关检索要求的信息一次性地传
送给功能层;而用户登录后,聊天登录信息是由功能层处理过的检索结果数据,它也是一次性传送给表示层的。在应用设计中,必须避免在表示层和功能层之间进行多次的数据交换,这就需要尽可能进行一次性的业务处理,达到优化整体设计的目的。
2.1即时聊天系统的实施原理
2.1.1 工作方式和技术原理
典型的IM工作方式如下:登陆CHAT通讯服务器,获取一个自建立的历史的交流对象列表(同事列表),然后自身标志为在线状态,当好友列表中的某人在任何时候登录上线并试图通过你的计算机联系你时,IM系统会发一个消息提醒你,然后你能与他建立一个聊天会话通道进行各种消息如键入文字、通过语音等的交流,从技术上来说,聊天系统的基本技术原理如下:
第一步,用户A输入自己的用户名和密码登录IM服务器,服务器通过读取用户数据库来验证用户身份,如果验证通过,登记用户A的IP地址、IM客户端软件的版本号及使用的TCP/UDP端口号,然后返回用户A登录成功的标志,此时用户A在IM系统中的状态为在线(Online Presence)。
第二步,根据用户A存储在IM服务器上的好友列表(Buddy List),服务器将用户A在线的相关信息发送给也同时在线的IM好友的PC机,这些信息包括在线状态、IP地址、IM客户端使用的TCP端口(Port)号等,IM好友的客户端收到此信息后将在予以提示。
第三步是IM服务器把用户A存储在服务器上的好友列表及相关信息回送到他的客户端机,这些信息包括也在线状态、IP地址、IM客户端使用的TCP端口(Port)号等信息,用户A的IM客户端收到后将显示这些好友列表及其在线状态。
2.1.2 通讯方式
(1)在线直接通讯
如果用户A想与他的在线好友用户B聊天,他将直接通过服务器发送过来的用户B的IP地址、TCP端口号等信息,直接向用户B的PC机发出聊天信息,用户B的IM客户端软件收到后显示在屏幕上,然后用户B再直接回复到用户A 的PC机,这样双方的即时文字消息就不再IM服务器中转,而是直接通过网络进行点对点的通讯,即对等通讯方式(Peer To Peer)。【5】
(2)在线代理通讯
用户A与用户B的点对点通讯由于防火墙、网络速度等原因难以建立或者速度很慢,IM服务器将会主动提供消息中转服务,即用户A和用户B的即时消息全部先发送到IM服务器,再由服务器转发给对方。
2.2软件设计流程
因为该系统其需求是十分明确的,所以该系统的开发流程采用瀑布模型进行设计,分为几大步骤:先进行需求分析,再是系统设计,然后是详细设计与编码,其次是软件的测试,最后是软件的运行和维护。【6】在实际过程中这些步骤经常是重叠和彼此间有信息交换,它不是一个简单线性过程,而是包括开发步骤的多个反复。如图2所示。
需求分析
系统设计
详细设计与编码
软件测试
软件运行与维护
图2 即时通讯系统开发流程图
2.3功能模块划分
该即时聊天工具按如下过程完成通信:
(1)客户向服务器注册,告知服务器该客户监听某主题;
(2)客户注册之后,向服务器发送消息;
(3)服务器再把消息发送给所有监听此主题的客户。
根据以上描述,该系统功能模块图请见图3。