基于Socket的网络聊天系统开发与设计(2)_毕业论文

毕业论文移动版

毕业论文 > 计算机论文 >

基于Socket的网络聊天系统开发与设计(2)


2.3XML技术
XML是由W3C定义的一种语言,是表示结构化数据的行业标准。XML在电子商务、移动应用开发、WEBSERVICE、云计算等技术和领域中起着非常重要的作用[7]。
自1998年首次发布以来,XML已经成为一项核心互联网技术。现在的XML已经催生出一套完整的标准,这些标准形成了电子出版、信息共享和应用程序集成的基础。
选用XML能够简化任务,并且能够提高数据访问和操作效率。XML及其处理过程都十分灵活,允许以不同方式来完成任务[8]。本系统正是通过采用XML技术进而达到后期软件开发易于扩展的目的。
3.系统分析
本系统的开发经过了系统总体设计和需求分析两个阶段,系统总体设计中,根据系统所使用的技术明确了系统的基本框架;需求分析阶段,根据局域网内用户的需求进行了系统功能需求的分析以及各模块的具体设计。
3.1系统总体设计
通过对本系统的总体分析得到系统的主要构成,共包括两大模块:
(1)服务器模块:实时显现在线用户,并验证用户注册昵称是否重复。
(2)客户端模块:实现用户注册账号、在线聊天、传递文件等功能。
具体而言本系统采用多层架构设计,主要由用户层通过统一确定的接口向逻辑层发出传递消息的请求,逻辑层则按自己的逻辑规则将请求处理之后再进行消息的转发。这样用户层虽然不知道消息转发的具体流程,但只要实现与逻辑层之间的接口即可完成所需的信息传递功能[9]。因此这种架构在很大程度上增强了信息的安全性,同时也降低了用户层开发人员的开发难度,从而实现高效便捷的系统开发[10]。
3.2系统框架
3.2.1网络架构
系统以Socket通信机制实现聊天功能,允许多个客户机连接,并设置了广播等多种信息传递方式。服务器使用ServerConnection类“侦听”进入的连接,客户端则使用ClientConnection类初始一次连接请求。一旦客户端申请建立一个套接字连接,ServerConnection就会通过accept()方法返回一个对应的服务器端套接字,以便进行直接通信。
服务器通过ServerMessageThread这个线程来监听,负责响应客户端的的各种信息,包括用户的登陆,注册,以及转发各个客户端发送的信息。
客户端负责为用户提供登陆界面,将信息发送至服务器,并通过Client类负责与其它客户端的通信工作。具体网络架构如图1所示。
网络架构
3.2.2系统架构
本聊天系统是一个以C/S为主体结构的网络程序的实例。程序设计过程中使用了JAVA中十分重要的观察者模式来具体实现各个模块,该模式定义了一种一对多的依赖关系,让多个观察者对象同时监听某一个主题对象。当主题对象在状态上发生变化时,会通知所有的观察者更新自己。
在系统中用户可以在客户端设置所要连接的服务器的IP地址以及端口号。并通过注册界面注册昵称,从而获得账号登陆并与在线用户聊天。同时能够查看所有用户在线状态,并可向FTP站点传输文件,实现与所有用户共享文件的目的。具体系统架构如图2所示。
图2 系统架构
3.3模块功能说明
3.3.1服务器功能
(1)能等待用户联机,并建立和客户端通信的I/O通道。
(2)当有用户登录,先验证其帐号昵称的合法性,验证成功后允许联机并将登陆信息在服务器端显示。
(3)能将用户发来的信息进行转发,同时可即时显示用户在线状态的变化。
(4)当服务器端关闭时所有客户端也将关闭。
3.3.2客户端功能
(1)注册用户昵称并设置连接服务器的ip和port。
(2)用户登陆后,能查看所有在线用户信息。 (责任编辑:qin)