软件设计与开发
数字技术与应用
基于
Java语言的在线实时聊天
系统 徐伟
(湖北警官信息技术系湖北武汉430043)
摘要:采用C/S架构设计了一个在线实时聊天系统,运用了JDK6标准组件开发用户和服务器界面,使用了Socket技术实现客户端和服务器端的
网络 通信。
关键词:C/S组件Socket多线程中图分类号:文献标识码:TP311.1A文章编号:1007-9416(2011)05-0012-02
随着信息技术的进步和网络的发展,虽然通过网络的聊天软件很多,但是针对企业内部系统的、局域网内的聊天和公司内部上下级沟通的聊天通讯软件却很少。所以开发一个此类型的实时聊天系统变得非常有意义。
1、系统描述
本系统采用TCP/IP网络协议,综合运用Java面向对象编程语言中的Socket、多线程技术和SQLServer数据库访问机制,C/S结构设计出界面友好生动的客户端和服务器端,使得两者可以进行信息交流,也可实现多用户同时在线交流。
2、系统设计2.1服务器模块功能
(1)在服务器端能查看使用该系统的所有用户的状态、IP以及其他信息,并统计用户总人数与在线人数。(2)显示聊天信息,以便对不正当聊天信息的监控,对发起不正当聊天信息的帐号的处理。(3)对客户端发过来的身份验证信息进行判断,若正确还要发送其好友的基本信息和滞留信息给客户端。(4)当用户上线或下线时,系统获取其信息后,能发送相应的上线或下线信息给他的好友。(5)对不健康聊天内容进行监控,即对聊天信息进行转发,并存入服务器数据库和显示在服务器端。(6)若客户端发来修改密码的信息,首先对起旧密码进行检验,不符合则发送失败反馈信息,合格则修改数据库并发送成功反馈信息。(7)用户对自己的网名不满意时,需要对自己的网名进行修改。(8)由于聊天内容是在不停的转发,所以在一段时间后,要进入数据库对过期的滞留信息和聊天信息进行删除,减轻数据库的负担。
的消息头,发送给服务端进行判断、修改。(2)服务器根据客户端发过来的信息,会做出处理,并发回反馈信息,所以客户端必须能够根据修改密码的反馈信息做出对应的提示。(3)获取用户输入新网名发送给服务端进行处理。(4)同样,类似密码的修改,客户端也必须根据服务器发回的修改网名的反馈信息做出对应的提示。2.2.3好友的添加模块(1)当用户要与另一用户进行信息交流是,就必须与他建立好友关系。(2)根据服务器的反馈信息,若成功则接受服务器发过来的好友基本信息并显示,若失败则做出提示。(3)能接受其他好友发过来的好友添加请求信息,给出选择,发送给服务端的选择信息。2.2.4好友的删除模块(1)当一用户与其中一好友不需他们的好友关系是,就必须要删除好友关系,客户端获取被删除者帐号,发送服务断进行删除处理。(2)能接受其他好友发送过来的好友删除信息,做出提示。2.2.5帐号之间的聊天模块(1)聊天是该软件的重要功能,为了对不健康内容传播的抑制,客户端系统必须获取聊天信息和发送对象给服务器转发。(2)得到服务器转发过来的聊天信息,即其他好友发送过来的消息,显示并存入数据库。
2.3数据库的设计
服务器包括用户基本信息表(ppdata),用于存储该聊天软件的所有用户的基本信息,包括帐号、密码、网名、IP、状态,好友对表(ppfriend)则用于存储好友双方的帐号、当有些信息,如添加好友,拒绝添加好友等信息发送到服务端是,该好友不在线,则把这些信息存入滞留信息表(ppnew)中,到该好友上线时再把该信息发送出去,同时删除该信息。
2.2客户端模块功能
2.2.1系统登录与退出模块(1)客户端系统获取用户登录的帐号与密码,将其与信息头组合,发送到服务器进行验证,服务器根据数据库的数据判断输入是否正确,再发送反馈信息,客户端根据反馈的信息做出相应的提示和处理,当输入正确是,还要接受其他系统必要的信息。(2)下线时为了让好友知道自己下了线,使发送的消息不发生丢失的现象,必须向服务器发出下线信息,使得服务器根据该信息做出处理。(3)聊天软件能与好友聊天,所以在登录成功后必须从服务器端下载自己所有好友的信息,因此客户端接受服务器发过来的好友
列表信息与滞留信息并做出处理,包括存入数据库。2.2.2帐户的设置与修改模块(1)获取用户输入的旧密码和新密码,组合本地IP,加上对应
3、系统实现3.1服务器模块
在服务器端用一线程接受所有从客户端发过来的信息,并对这些信息进行分解,分解成消息头和消息体,系统根据消息头判断消息属于何种消息,在根据消息的类型做不同的处理。处理之后,又将处理结果加上相应的消息头,通过DatagramSocket发送对应的IP.