龙源期刊网 http://www.qikan.com.cn
基于Java平台的网络聊天系统的设计与实现
作者:施滔滔 郭 姝 崔晓鹏 刘 颖 来源:《电脑知识与技术》2009年第26期
摘要:针对当前中小型企业办公人员对即时通讯软件要求较低等问题,提出了一种基于Java平台下的网络聊天系统的设计与实现方案,对系统进行了整体设计和详细设计,该系统主要通过Java Socket网络编程实现通信,具有速度快,高稳定性,占用系统资源少,用户界面友好等特点。最后该文还介绍了系统设计的关键技术,通过这些技术提高了网络聊天的效率。 关键词:Java;Socket编程;多线程;网络聊天系统
中图分类号:TP393文献标识码:A文章编号:1009-3044(2009)26-7415-02
The Design of System of Web Chat Based on Java SHI Tao-tao, GUO Shu, CUI Xiao-peng, LIU Ying
(Department of Computer Science and Technology, China University of Mining and Technology, Xuzhou 221116, China)
Abstract: Based on office staffs’ low level requiring for instant messaging software in the small and medium enterprises.An design and implementation program of web chat has been hold out which is based on Java platform, the system has been overall designed and detailed designed. The system uses Java socket programming to achieve communication, with many characteristics such as high speed, high stability ,occupying less system resources, user-friendly.Finally,the key technologies of the system has been introduced, which has improved the efficiencies of web chat. Key words: Java; socket programming; multi-threaded; system of web chat
近年来,随着科学技术的飞速发展,特别是信息技术的突飞猛进,我们已经进入了信息化的时代,计算机以其精确、高效的优势逐渐渗入到了经济社会的各个领域,可以说现代社会已离不开计算机了。
对于现在的软件市场来说,即时通讯软件占了很大一部分比例,可以说很多的人来上网都是聊天,而且当前很多软件已经发展得较成熟,然而并不是它们不好,只是它们由于想要用过多花哨
龙源期刊网 http://www.qikan.com.cn
的功能和界面来吸引用户,反而使得很多用户用不惯甚至找不到想要的工具,特别是对于那些日常工作繁忙的上班族人员。本文开发的网络聊天软件正尽可能的向界面友好同时功能明确、简洁的方向迈进,特别适合中小型企业内部的通知、交流和联系。
1 系统的开发环境及技术要求
1.1 系统的开发环境
本系统在Windows XP 操作系统下采用MyEclipse 7.0开发环境进行开发,在Java平台下进行GUI图形界面设计,并通过Java Socket编程以及多线程技术完成网络通信。数据存储方面,采用文件的输入输出操作来满足需求。 1.2 开发技术简介
Java[1]是一门很优秀的编程语言,具有面向对象、与平台无关、安全、稳定和多线程等特点,是目前软件设计中极为健壮的编程语言。Java不仅可以用来开发大型的应用程序,而且特别适合于Internet的应用开发。
Java Socket编程[2],简单的理解就是两台计算机相互通讯数据而已。Java SDK提供一些相对简单的Api来完成这些工作,Socket就是其中之一。对于Java而言,这些Api存在于java.net 这个包里面。因此只要导入这个包就可以准备网络编程了。网络编程的基本模型就是客户机到服务器模型,即两个进程之间相互通讯,然后其中一个必须提供一个固定的位置(服务器),而另一个则只需要知道这个固定的位置(客户端),并去建立两者之间的联系,完成数据的通讯就可以了。
多线程[3]是为了同步完成多项任务,不是为了提高运行效率,而是为了提高资源使用效率来提高系统的效率。线程是在同一时间需要完成多项任务的时候实现的。使用线程可以把占据长时间的程序中的任务放到后台去处理,用户界面可以更加吸引人,在一些等待的任务实现上如用户输入、文件读写和网络收发数据等,可以释放一些珍贵的资源如内存占用等等。
2 系统设计
2.1 总体设计
龙源期刊网 http://www.qikan.com.cn
网络聊天系统的总体设计[4]图如图1所示。 2.2 系统实现原理[5]
当用户聊天时,将当前用户名、聊天对象、聊天内容和是否私聊进行封装,然后与服务器建立Socket连接,再用对象输出流包装Socket的输出流将聊天信息对象发送给服务器端。 当用户发送聊天信息时,服务端将会收到客户端用Socket传输过来的聊天信息对象,然后将其强制转换为Chat对象,并将本次用户的聊天信息对象添加到聊天对象集Message中,以供所有聊天用户访问。
接收用户的聊天信息是由多线程技术实现的,因为客户端必须时时关注更新服务器上是否有最新消息,在本程序中设定的是3秒刷新服务器一次,如果间隔时间太短将会增加客户端与服务器端的通信负担,而间隔时间长就会让人感觉没有时效性,所以经过权衡后认为3秒最佳,因为每个用户都不可能在3秒内连续发送信息。
每次用户接收到聊天信息后将会开始分析聊天信息然后将适合自己的信息人性化地显示在聊天信息界面上。
3 关键技术
网络通信的设计[6]是整个系统设计的第一步,也是系统设计重要组成部分,本系统首先要创建服务器,然后通过多线程实现网络通信,该部分的主要程序代码如下: //////////*创建服务器*////////// public AppServer()
{ServerFrame sFrame=new ServerFrame(); static Vector u=new Vector(1,1); static Vector v=new Vector(1,1); try{
ServerSocket serverSocket = new ServerSocket(1001); //获取服务器的主机名和IP地址