您好,欢迎访问三七文档
当前位置:首页 > 建筑/环境 > 工程监理 > 基于JAVA的聊天系统的设计与实现
基于JAVA的聊天系统的设计与实现黄青青,郝晓露,程金凤(安徽师范大学,芜湖市241003)关键词:JAVA;聊天系统;听歌;换肤;文件传送摘要:当今社会,网络快速发展,人们的交流方式也发生了变化,出现了很多即时聊天软件。但这些软件都是基于互联网通讯的。本文主要阐述了一个基于Java的聊天系统的设计与实现的过程。该系统可以提供点对点的服务,在局域网和互联网内均能实现两个用户之间的直接通讯。同时,该系统也具有文件传送、更换皮肤和播放本地歌曲的功能,使用方便快捷。DesignwithRealizationofaChattingSystemBasedonJavaHuangQingqing,HaoXiaolu,ChengJinfeng(AnhuiNormalUniversity,Wuhu,241003,China)KeyWords:Java;Chattingsystem;Listeningmusic;Changingskin;TransferringfileAbstract:Nowadays,networkisdevelopingrapidly,asaresultthemethodsofcommunicationchangedandmanyreal-timechattingsoftwarewereproduced.However,thesetoolscouldonlybebasedontheInternet.ThisthesismainlydescribedtheprocessaboutthedesignandimplementationofachattingsystembasedontheJava.Thissystemprovidedpeer-to-peerserviceandrealizeddirectcommunicationbetweentwousersbothonlocalareanetworkandtheInternet.Besides,italsoofferedthefunctionssuchastransferringfile,changingskinandlisteningmusic.Itisconvenientandnimbleforpeopletouse.引言随着互联网的逐步普及,人们的生活和工作也越来越离不开信息网络的支持,而聊天室是人们最常见,最直接的网上交流的方式。目前国内外做聊天系统的很多,产品也是琳琅满目,国内有诸如腾讯QQ与新浪UC、网易泡泡等,国外著名的有MSN以及跨平台GAIM等。即时通讯系统的最大特点是在网上进行信息的实时交流。与传统通讯方式相比,即时通讯系统具有快捷,低成本,隐秘性高的特点,在网络中可以跨年龄、身份、行业和地域的限制,达到人与人、人与信息之间的零交流。从这点上讲,网络即时通讯的出现改变了人们的沟通方式,大大拓展了个人生活交流的空间。这些聊天系统只能基于互联网进行通讯,在局域网中不能实现即时通讯,这无法满足用户的需求。为此,我们这篇论文主要阐述一个基于Java的聊天系统的设计与实现的过程,该系统在局域网和互联网中都可以实现用户之间聊天,文件传送等功能,降低开发成本。该系统适合集体内使用,只要双方知道对方的IP地址即可进行通讯。该聊天系统界面简单美观,操作方便,开发成本较低,易于维护,能满足用户的一定的要求,解决了在局域网内实现即时通讯的难题。1基于JAVA的聊天系统的需求分析1.1用户需求分析要设计与实现的聊天系统是一个简单、方便的聊天系统,分为两部分:用户1和用户2。要求是当用户1和用户2分别打开各自客户端时,无论是在局域网或互联网中,运行客户端的用户只需要知道运行另一客户端的用户所在的IP地址,即可与另一用户建立连接,发送消息。另外,聊天窗口能够更换皮肤,选歌播放和传送文件。对用户需求进行一定简化后总结得到以下需求:⑴两个用户之间可以通过IP地址来建立连接,以进行聊天。⑵用户可以根据需要选择播放喜欢的歌曲。⑶用户可以为自己的窗口更换皮肤。⑷用户可以进行文件传送。1.2系统可行性研究可行性研究的目的,就是用最小的代价在尽可能短的时间内确定问题是否能够解决,它不是为了解决问题,而是确定问题是否值得去解决。下面将要从技术可行性、经济可行性、操作可行性、社会可行性等方面来分析。1.2.1技术可行性本系统的开发使用JAVA作为系统开发的开发环境,其面向对象编程方法支持我们编写所需要的类。而且,它具有强大,快捷的网络编程功能,为我们设计出聊天系统提供了可能。另外,JAVA还提供了标准的图形界面程序包AWT和SWT,为我们设计出美观的图形用户界面创造了条件。因此,利用现有的技术能够实现本系统。1.2.2经济可行性本聊天系统可以用于企业内部,学生宿舍内部局域网的即时聊天,有一定的价值,后期经济效益不错。而且本系统对电脑的要求不高,只需要配置了JDK环境,能运行Java软件,可以用于JAVA编程便可。代码行数不多,开发难度不大,开发成本低。而且系统操作简单明了,应用时只需进行简单的人员培训。同时,JAVA程序容易修改,降低了后期维护成本。长久看来,系统经济可行性良好。1.2.3操作可行性本聊天系统可以提供给企业,学校,家庭或个人使用,操作方式简单易用,符合人们的常规思维,界面简洁美观,满足人们的审美需求。用户只需打开端口,输入对方电脑的IP地址,即可向对方发送即时聊天信息并得到回应。因此,系统具有较强的操作可行性。1.2.4社会可行性本系统可用于企业内部员工之间,学生寝室室友之间进行工作,学习,生活上的交流。而且在局域网和互联网中都可以使用这个优势可以使用户不受网络条件限制而进行即时聊天,满足了一部分用户的需要,而且将会受到大多数用户的青睐。总体来讲,本系统具有广泛的社会可行性。综上可知,基于JAVA的聊天系统是可行的。2基于JAVA的聊天系统的概要设计根据对用户需求的分析,把这个小型聊天系统分为服务端模块和客户端模块,服务端模块包括建立连接模块,传送文件模块,客户端模块包括即时聊天、选歌播放、更换皮肤和传送文件四个模块,其中传送文件模块又分为文件选择和数据传输两个子模块。每个模块的功能如下:⑴即时聊天模块:因为聊天模块是指文本聊天,无需使用可靠性较高的协议,所以我们使用UDP协议进行聊天。用户只需知道对方的IP地址即可向对方发送聊天信息,对方接收到信息时可以直接回复。⑵选歌播放模块:本模块负责为用户提供若干首音乐,在用户聊天时,可以根据用户的选择播放相应的本地音乐。⑶更换皮肤模块:本模块是考虑到用户的视觉疲劳问题,使用户可以通过点击“换肤”按钮,从而更换聊天窗口的背景图片,以获得多样的审美感受。⑷传送文件模块:本模块实现用户与用户之间的在无网状态下的文件传送。用户通过点击“文件传送”按钮,在弹出的文件浏览对话框中选择需要传送的文件,点击“发送”按钮即可将上述选择的文件传送给对方。⑸建立连接模块:本模块负责让服务器始终监听客户端的行为,若客户端发送连接请求,且网络畅通,则为客户端建立连接。⑹传送文件模块:客户可以从服务器上下载文件,也可以上传文件到服务器。本模块功能不做详述。模块图如图2.1所示:3基于JAVA的聊天系统的详细设计3.1即时聊天模块设计本模块采用UDP协议实现用户与用户之间的聊天功能。用户若想与另一用户聊天,可以自行输入对方的IP地址和需要发送的信息。当IP地址有效并且信息不为空时,则可以与对方建立连接,当连接建立后,便可以进行一对一的交流。若IP地址无效、信息为空或连接未成功建立,系统将给出相基于JAVA的聊天系统服务器端模块客户端模块连接建立模块传送文件模块即时聊天模块选播音乐模块更换皮肤模块传送文件模块图2.1系统模块图Fig.2.1thechatofsystemmoudules文件选择模块数据传输模块即时聊天模块应的提醒。3.2选歌播放模块设计我们先将几首歌曲的源文件放在系统中,当用户想听某一给出的歌曲时,点击该歌曲名称对应的单选按钮即可。系统根据用户的选择,从本地资源中找到相应的文件,然后构造一个本地URL。利用这个URL形成一个声音对象,进而可以播放该歌曲。如果用户又点击其他歌曲,再次重复上述过程播放音乐。3.3更换皮肤模块设计此聊天系统提供六种窗口皮肤。首先该聊天系统自动默认一种皮肤,如果用户不需改变聊天窗口的背景,则一直使用该默认皮肤。如果用户需要改变聊天窗口的背景,单击“换肤”按钮即可。当用户单击“换肤”按钮之后,系统重新获取下一张图片作为窗口背景。若用户仍不满意当前窗口皮肤,可多次单击“换肤”按钮,以选择自己喜爱的窗口皮肤。开始结束点击歌曲名称单选按钮找到对应的本地文件用本地文件构造URL形成一个声音对象播放用户重新点击?YN图3.2选歌播放流程图开始结束建立连接连接失败提示输入对方的IP地址,输入需要发送的信息IP为空?信息为空?IP为空警告空信息警告发送信息YYYNNN图3.1即时聊天流程图Fig.5.6thechatofsystemmodule图3.1即时聊天流程图3.4文件传送模块设计本模块实现了用户与用户之间资源的传送。要进行文件传送时,可以单击“文件传送”按钮,在系统弹出的文件浏览对话框中选择需要进行传送的文件。确定选择后,将在信息编辑框中显示所选文件的绝对路径,若此路径有效则进行文件的传输,若无效,则提醒用户文件不存在。开始结束弹出浏览对话框在信息编辑框中显示文件的绝对路径图3.4文件传送流程图Y点击“文件传送”按钮??发送文件文件存在??文件不存在警告NYN开始结束聊天窗口显示默认皮肤重新获取一张背景图片显示背景图片N图3.3更换皮肤流程图点击“换肤”按钮??Y3.5建立连接模块设计4基于JAVA的聊天系统的具体实现Java采用面向对象的编程方法来编写图形用户界面(GUI)的程序,在Java中,各个构件都被定义成很多类封装在类包中,只要在程序头导入类包,即可使用里面的控件类。Java类包分为两类:Java.awt包和Javax.swing包。在这次设计聊天系统时,我们选用Javax.swing包。因为Swing是更灵活,更强大的AWT的版本,设计出来的图形用户界面更加美观,更具有现代气息。表4.1列出javax.swing包中的部分类。表4.1javax.swing包中的部分类Table4.1thepartialclassesinjava.swingpackage基本的窗口类JFrame、Dialog基本的GUI构件类JButton、JTextArea、JLabel、JTextField、基本的事件接口ActionListener、WindowListener、MouseListener、KeyListener基本的版面控制FlowLayout、BorderLayout、GridLayout、JPanel4.1GUI布局管理⑴Java使用布局管理器来管理版面布局。布局管理器按照布局说明,选择构件的最佳位置,标准的布局管理器类有:FlowLayout,BorderLayout,GridLayout,CardLayout,GridBagLayout⑵在这里我们使用BorderLayout作为总体版面布局。BorderLayout是JFrame类的默认布局管理器,它提供了一种较为复杂的组件布局管理方案,主要用于布置容器的边界布局。它将容器划分成五个区域:东(EAST)、南(SOUTH)、西(WEST)、北(NORTH)、中(CENTER)。北:与播放音乐、文件传送和更换皮肤有关的控件组中:聊天内容JTextArea南:与用户输入有关的控件组⑶在总体布局的北部添加一个面板,并调用其setLayout()成员方法,将布局设置开始对用户进行监听用户请求?建立连接连接成功?结束网络阻塞提醒图3.5建立连接流程图为GridLayout,将相关控件放在此面板上;中部直接将编辑框拖入;南部也是添加一个面板,将相应的控件拖入,采用面板的默认布局FlowLayout4.2即时聊天模块具体实现4.2.1类的选择即时聊天模块需要一个文本框、两个文本域、
本文标题:基于JAVA的聊天系统的设计与实现
链接地址:https://www.777doc.com/doc-3891886 .html