基于java语言的在线实时聊天系统的设计与实现


软件设计与开发 数字技术 与应用 1212 随着信息技术的进步和网络的发展,虽然通过网络的聊天软 件很多,但是针对企业内部系统的、局域网内的聊天和公司内部 上下级沟通的聊天通讯软件却很少。所以开发一个此类型的实时 聊天系统变得非常有意义。 1、系统描述 本系统采用TCP/IP网络协议,综合运用Java面向对象编程语 言中的Socket、多线程技术和SQL Server数据库访问机制,C/S结构 设计出界面友好生动的客户端和服务器端,使得两者可以进行信 息交流,也可实现多用户同时在线交流。 2、系统设计 2.1 服务器模块功能 (1)在服务器端能查看使用该系统的所有用户的状态、IP以及 其他信息,并统计用户总人数与在线人数。 (2)显示聊天信息,以便对不正当聊天信息的监控,对发起不 正当聊天信息的帐号的处理。 (3)对客户端发过来的身份验证信息进行判断,若正确还要发 送其好友的基本信息和滞留信息给客户端。 (4)当用户上线或下线时,系统获取其信息后,能发送相应的 上线或下线信息给他的好友。 (5)对不健康聊天内容进行监控,即对聊天信息进行转发,并 存入服务器数据库和显示在服务器端。 (6)若客户端发来修改密码的信息,首先对起旧密码进行检 验,不符合则发送失败反馈信息,合格则修改数据库并发送成功 反馈信息。 (7)用户对自己的网名不满意时,需要对自己的网名进行修 改。 (8)由于聊天内容是在不停的转发,所以在一段时间后,要进 入数据库对过期的滞留信息和聊天信息进行删除,减轻数据库的 负担。 2.2 客户端模块功能 2.2.1系统登录与退出模块 (1)客户端系统获取用户登录的帐号与密码,将其与信息头组 合,发送到服务器进行验证,服务器根据数据库的数据判断输入 是否正确,再发送反馈信息,客户端根据反馈的信息做出相应的 提示和处理,当输入正确是,还要接受其他系统必要的信息。 (2)下线时为了让好友知道自己下了线,使发送的消息不发生 丢失的现象,必须向服务器发出下线信息,使得服务器根据该信 息做出处理。 (3)聊天软件能与好友聊天,所以在登录成功后必须从服务器 端下载自己所有好友的信息,因此客户端接受服务器发过来的好 友列表信息与滞留信息并做出处理,包括存入数据库。 2.2.2 帐户的设置与修改模块 (1)获取用户输入的旧密码和新密码,组合本地IP,加上对应 基于Java语言的在线实时聊天系统的设计与实现 徐伟 (湖北警官学院信息技术系 湖北武汉 430043) 摘要:采用C/S架构设计了一个在线实时聊天系统,运用了JDK 6标准组件开发用户和服务器界面,使用了Socket技术实现客户端和服务器端的网络 通信。 关键词:C/S 组件 Socket 多线程 中图分类号:TP311.1 文献标识码:A 文章编号:1007-9416(2011)05-0012-02 的消息头,发送给服务端进行判断、修改。 (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)中,到该好友上线时再把该信 息发送出去,同时删除该信息。 3、系统实现 3.1 服务器模块 在服务器端用一线程接受所有从客户端发过来的信息,并对 这些信息进行分解,分解成消息头和消息体,系统根据消息头判 断消息属于何种消息,在根据消息的类型做不同的处理。处理之 后,又将处理结果加上相应的消息头,通过DatagramSocket 发送 对应的IP. 3.2 客户登录模块 两个文本框用来接受用户输入的帐号和密码,系统屏蔽掉一 些错误输入后,将获取的登录信息和本地IP地址加上对应的消息 头,封装后发送给服务器进行校验,并建立一线程,用无限循环 ••••••下转第105页 105105 学术论坛数字技术 与应用 测得误差结果如下表: TV 误差 额定二次负载(cosø=0.8) 2.5VA负载 (cosø=0.8) 80% 100% 115% 80% 100% A相比差 -0.063 -0.066 -0.072 0.075 0.070 A相角差 -0.2 0.1 0.4 -0.2 0.1 B相比差 -0.058 -0.061 -0.069 0.081 0.075 B相角差 -0.2 0.2 0.4 -0.1 0.2 C相比差 -0.069 -0.072 -0.077 0.072 0.079 C相角差 -0.1 0.3 0.4 -0.2 0.2 TA 误差 1% 5% 20% 100% 120% 额定二次负载(cosø=0.8) A相比差 -0.711 -0.683 -0.230 -0.138 -0.106 A相角差 28.2 15.2 8.9 5.5 2.3 B相比差 -0.698 -0.501 -0.196 -0.118 -0.098 B相角差 26.9 13.5 11.0 6.9 5.1 C相比差 -0.775 -0.586 -0.199 -0.128 -0.118 C相角差 29.5 14.9 10.2 7.2 5.9 3.75VA负载(cosø=0.8) A相比差 -0.087 -0.002 0.004 0.011 0.018 A相角差 6.9 5.8 4.9 4.0 3.3 B相比差 -0.102 -0.036 0.005 0.016 0.025 B相角差 7.1 6.2 5.5 4.3 2.9 C相比差 -0.110 -0.029 0.012 0.025 0.037 C相角差 6.3 5.5 4.9 4.3 2.5 4、数据结果分析 由于测试数据中电流互感器数据有所偏大,我们重新查看了 每一处导线连接并重新加固,保证接触良好,特别是一次导线的 连接。发现电流互感器外罩制造时由于考虑了互感器电磁短路的 问题,在封口处都增设了一道绝缘垫,在接地线引出端等很多位 置都有绝缘垫,由于现场施工还没有结束,空气潮湿,开关机构 动作引起的震动等多方面因素影响,导致绝缘不良,有一部分试 验电流通过外壳等接地,这是导致误差结果偏大的主要原因。由 于GIS系统设备密集程度高,110kV及以下设备三相是集成在一组 管道中,220kV及以上设备为三相分装,但管道外壳均有金属框架 加以固定和连接,也会形成一定的磁泄露,所以磁回路屏蔽的好 坏应该也会影响到互感器二次输出的误差。我们清洁了各处的绝 缘垫表面,并对一些安装位置不正确的绝缘进行了处理,重新测 量之后得出的误差数据均在合格范围之内,也与中试所的数据基 本吻合。 5、结语 我们通过试验与探索,掌握了GIS系统互感器的比角差校验 的方法,对结果还进行了认真的分析,对GIS系统设备与传统外 置式设备的区别也进行了研究和探索,应该说是拥有了完成GIS 系统互感器比角差校验的能力。 为了使GIS系统互感器能够长期正常运行而不留隐患,还建 议采取一些行之有效的措施予以防范。如加装绝缘环和绝缘垫片 的过程要逐条螺栓加装,以防止漏气。加装绝缘螺栓要有防水密 封措施,以防止螺栓进水锈蚀,破坏绝缘。由于电流互感器组件 质量较大,制造厂在断路器和电流互感器之间增加支撑架时,支 撑架也要采取绝缘措施。电流互感器外罩和GIS构架相碰也能形 成短路,因而必须采取绝缘措施。由于断路器合跳闸振动,绝缘 环会出现串动而造成绝缘破坏,因此绝缘环和绝缘垫应加工成一 体,并尽可能采用机械强度更高的绝缘材料。 备、图书、讲义、课件等)到活动(教、学、管理、服务、办公 等)的信息化。校园网络及其应用系统构成整个校园的神经系 统,完成现实校园的信息传递和服务提供。在数字校园里,师生 可以通过现代化手段,实现学校的教学、科研、管理、服务等活 动的全部过程,从而达到提高教学质量、科研水平、管理效率的 目的。通过网络整体结构的改造,长城学院设计实现了完整的数 字化校园,达到了预期的目标,整合了数字化校园。 参考文献 [1]王春雁,朱文英.2004年一2005年校园卡建设与应用现状分析(-F)[J].中 国教育信息化,2005(5);6-7. [2]郑贵林,夏丹,岳林.基于J2EE的城域网公交一卡通系统设计[J].计算机 工程与设计,2007(21). [3]孙小权,邹丽英.ebSenic:es在数字化校园建设中的应用[J].实验室研 究与探索,2005,24(1J):49—5J. ••••••上接第106页 来获取服务器发过来的数据,在根据数据的体来判断登录是否成 功,或者是帐号密码错误,或者是已经在别出登录。提出相应提 示。 3.3 客户端聊天模块 在大的文本框中显示与该好友聊天的聊天记录。按一定的 格式显示在这JTextArea中。发送消息的窗口也是Java中的控件 JTextArea,点击按钮发送之后,系统读取发送消息的窗口里面的 信息,组合后发送给服务端,让服务段对这信息进行转发。而在 本地则存入数据库,并显示在消息列表中。 4、结语 本文采用了C/S结构,即客户机和服务器结构。通过Socket技 术充分利用两端硬件环境的优势,将聊天任务合理分配到Client 端和Server端来实现,降低了通讯开销。 参考文献 [1] 汤庸,冯智圣,申建芳,肖炜. Java程序设计与实践[M].冶金工业出版 社,2005.P89-129. [2] 林邦杰.彻底研究Java 2[M].电子工业出版社.2006.P141-168. [3] 张晓云,石峰,张先军.SQL Server2000应用实训教材[M].科学出版 社,2002.P131-135. [4] 赵欢,孙士兵,赵利.Java实用程序设计[M].中国水利电力出版社,2009. P156-167. ••••••上接第12页
还剩1页未读

继续阅读

下载pdf到电脑,查找使用更方便

pdf的实际排版效果,会与网站的显示效果略有不同!!

需要 10 金币 [ 分享pdf获得金币 ] 0 人已下载

下载pdf