JAVA聊天室的设计含源文件Word文件下载.docx
《JAVA聊天室的设计含源文件Word文件下载.docx》由会员分享,可在线阅读,更多相关《JAVA聊天室的设计含源文件Word文件下载.docx(33页珍藏版)》请在冰豆网上搜索。
因此伴随着网络而必然产生的一些软件也越来越多,而能够实现即时通信的聊天软件也是随之诞生,且深受用户们喜爱。
而MSN,ICQ,还有国内的QQ等大型聊天软件也成为了人们网络生活中的一部分。
本文中主要阐述的是java聊天室的设计过程,以及聊天功能的实现。
前台采用的java语言采用C/S架构来设计聊天室,而后台则采用SQLServer2005创建的数据库和表格来管理用户的信息。
然后利用这2种工具的结合来完成聊天室的设计。
【关键词】网络聊天室即时通信JAVA
ChatroomDesignwithrealizationbasedonJAVA
Abstract
Withtherapiddevelopmentofnetwork,thenetworkhasbecomeinamajorwayforustounderstandtheworld.Sowiththenetworkandinevitablehassomesoftwareisalsomoreandmore,andcanrealizeinstantcommunicationchatsoftwareisalsocomesandlovedbyuses.SoMSN,ICQ,QQandotherlargechatsoftwarehasbecomeapartofthepeople’slifefornetwork.
ThisarticlemainlyelaboratedinthechatroomofthedesignprocessisJava,andtherealizationofthefunctionofchat.ThefrontdeskoftheJavalanguageusingC/Sarchitecturetodesignachatroom,andthebackdesk,usingthedatabaseandSQLServer2005createformtomanagecustomerinformation.Finally,usingthecombinationofthesetwotoolstocompletethedesignofthechatroom.
【Keywords】networkChatroomInstantcommunicationJAVA
绪论
随着互联网逐步普及,人们的生活和工作也越来越离不开信息网络的支持,而聊天室是人们最常见,最直接的网上交流的方式。
本系统利用Java实现基于C/S模式的聊天程序。
聊天室共分为服务器端和客户端两部分,服务器端程序主要负责侦听客户端发来的消息,客户端需登录到服务端才可以实现正常的聊天功能。
服务器端的主要实现在特定端口上进行侦听,等待客户端连接;
用户可以配置服务端的侦听端口,默认端口为9999;
向已经连接到服务端的用户发送系统消息。
客户端的主要功能为:
连接到已经开启服务的服务端;
用户可以配置要连接的端口号;
用户可以配置连接后显示的用户的账号;
当服务器端开启的话,用户可以随时登录,用户可以向所有人或某一个人发送消息。
从而客户与客户之间以及客户与服务器之间可以简单方便地进行通信。
主要使用Sun公司提供Java语言、jdk开发环境及套接字通信socket技术,并利用MyEclipse来进行开发,来是实现对服务器端和客户端之间相互交流的功能。
1课题总体介绍
1.1项目开发的目的
本课题的研究主要目的是可以加深我们对java编程思想的理解,让我们养成一个良好的项目开发的编程习惯,同时也是对我们所学的java编程的一个综合提高。
而对聊天室的开发也可以更好的理解C/S架构开发的原理,能够更加熟练的使用多线程、异常处理、Socket编程、输入输出流的使用。
1.2项目开发的意义
根据当前网络的需求,网络聊天越来越受各种网民所青睐。
因此开发网络聊天是相当有必要,而且在网站内增加聊天功能,它不仅可以提高网站的访问量,同时可以留着访客,更重要的是让访客透过聊天室实时的互相交流。
而本人也学习过JAVA语言,对网络编程也较有兴趣,为了更好的考验自己对JAVA语言的掌握程度,本人就决定以《Java聊天室》为毕业设计,希望通过这一次能进一步提高本人的网络开发编程的能力。
2总体设计
2.1应用需求分析
利用Java实现基于C/S模式的聊天程序,聊天系统不外乎两个方面,服务器端和客户端。
服务器端程序主要负责侦听客户端发来的消息,客户端需登录到服务端才可以实现正常的聊天功能。
简单分析一下两个方面所要完成的任务,对设计这个程序来说,等于完成了一半。
首先来看一下服务器端的任务:
服务器端的主要功能如下:
(1)在特定端口上进行侦听,等待客户端连接。
(2)用户可以配置服务端的侦听端口,默认端口为9999。
(3)向已经连接到服务端的用户发送系统消息。
(4)可以启动和关闭服务器。
以上就是服务器端最主要任务。
不难看出,服务器端的任务并不复杂。
客户端的主要功能如下:
(1)连接到已经开启服务的服务端。
(2)用户可以注册账号。
(3)用户可以通过注册好的账号登陆聊天室。
(4)用户可以向所有人或某一个人发送消息。
相对服务器而言,客户端的任务也不很复杂,有了以上的简单分析,可以知道,解决上述问题,即完成了该聊天系统的核心。
聊天室设计好了,同时还需要数据库的支持,数据库的功能就是对用户注册的账号和密码进行管理,当用户登录时可以进行验证。
2.2模块具体分析
模块分析示意图如图2.1所示:
图2.1模块分析
2.2.1服务器端模块分析
服务器与客户间通过套接口Socket(TCP)连接。
在java中使用套接口相当简单,JavaAPI为处理套接口的通信提供了一个类.Socket,使得编写网络应用程序相对容易。
服务器采用多线程以满足多用户的请求,并通过创建一个ServerSocket对象来监听来自客户的连接请求,默认端口为8888,然后无限循环调用accept()方法接受客户程序的连接。
2.2.2客户端模块分析
客户通过Socket(InetAddress,port)建立与服务器的连接。
服务器与客户都通过构造对象流来建立输入输出流,然后双方通过该输入输出流来相互传递信息,一旦收到客户方的连接请求,服务器accept()方法返回一个新建的Socket对象。
客户端然后向服务器发送消息,服务器收到来自客户的请求后,针对不同的消息处理请求。
2.2.3数据库模块分析
数据库用于管理用户的信息,当用户在注册界面成功注册了账号,就存在数据库的用户表里面,当新用户注册时,将新账号与数据库中的账号比较来验证账号是否纯在,也可以验证账号密码是否正确。
2.3聊天室的具体实现
2.3.1登录界面的实现
登陆界面如图2.2所示:
图2.2聊天室的登陆界面
该界面用到了3个Jlabel,分别是“聊天室登录器”、“账号”、“密码”。
用到了1个JTextFilet,1个JpasswordField,和2个Jbuttton(登录和注册)。
然后用网格包布局来管理这些控件。
当填写了正确的账号和密码后点击登录按钮可以进入聊天界面,错误则提示“用户名或密码错误”:
点击注册按钮则可以进入注册账号的界面。
2.3.2注册界面的实现
注册界面的实现如图2.3所示:
图2.3注册界面
该界面主要用的了4个Jlabel分别是4个填写文字的部分,然后一个JtextField和2个JpasswordField,用来填写要注册的账号和密码。
这些控件被放入第一个Jpanel中,然后放于Jframe的居中部分。
然后2个按钮放在了第二个jpanel中,放于jframe的南边。
2.3.3聊天界面的实现
聊天界面的实现如图2.4所示:
图2.4聊天界面
该界面的控件很少,用一个JtextArea来显示用户们的聊天内容,该空间放在了居中部分。
然后是在南边有一个JtextField用来填写用户想说的话,然后点击唯一的Jbutton(发送),就可以发送自己说的话了。
2.3.4服务器界面的实现
服务器界面的实现如图2.5所示:
图2.5服务器界面
该界面只用到了2个Jbutton,用来启动和关闭服务器。
2.3.5服务器验证登录的实现
当用户点击了登录界面的登录按钮之后,用户填写的账号和密码会发送到服务器进行验证,如果账号密码正确,则向客户端发送登录成功的信息;
如果账号密码不正确,则向客户端发送信息并以客户端为父窗口弹出子窗口提示说:
“账号或密码错误!
”。
2.3.6聊天功能的实现
用户在聊天界面点击发送按钮后,消息发送到服务器,服务器的消息进行分析,如果是私聊,分析出发送这和接收者后,将消息转发给接收者。
如果是发送给所有人,就遍历管理服务器连接所有人线程的hashmap,得到连接所有人的线程,将消息发送给所有人,而客户端则遍历管理所有人的聊天界面的hashmap,得到所有人的聊天界面,将消息发送到所有人的界面上。
3聊天室的详细设计
3.1开发环境的配置
JDK(JavaDevelopmentkit)是SUN公司提供的一套Java开发环境,通常称之为它主要包括了一些常用的JDK工具、执行时需要的函数库、与C连接时所需的文件及一些Java应用程序范例等。
JDK可以从SUN公司的网站或国内一些常用的资料下载网站免费下载而得。
下载完毕便可安装JDK。
在安装完JDK之后,必须配置环境变量classpath和path,JDK才能够正常运行。
①.在环境变量中新建名为classpath的环境变量(如已经存在则只要修改),值为:
E:
\ProgramFiles\Java\jdk1.6.0_10\lib
②.classpath指明Java虚拟机要装载类的路径,“.”表示当前目录
③.在环境变量中新建名为path的环境变量(如已经存在则只要修改),值为:
\ProgramFiles\Java\jdk1.6.0_10\jre\bin
④.path指明了操作系统查找JDK工具如javac、java等文件的路径
Sun公司为程序开发者提供了编译、测试、执行程序等一套完备的工具体系,它们被集中存放在主目录的bin目录下。
3.2开发的过程
开发的过程不是盲目的,要有清晰的思路。
分好工作区,建好要用到的包,如:
界面就写在名为view的包里面,后台运行的类就写在model包里面等。
类视图1如图3.1所示:
图3.1类视图1
这是服务器端的开发,model层中的类是在后台运行的程序,view层中的类是服务器界面,启动服务器其实是调用的Server类,这个类才是真正的服务器。
而SerConClientThread类是服务器连接客户端的线程类,它的作用是接收客户端发来的消息并且转发出去。
ManageClientThread类是管理服务器连接客户端线程的类,这个类用HashMap将服务器连接客户端的所有线程管理了起来,方便调用。
同样在客户端的开发也是有良好的分层结构,如图3.2所示:
图3.2