JAVA 聊天室课程设计报告
目录
摘要............................................................................................................................................................... - 1 -
一、绪论. ......................................................................................................................................................- 1 -
1.1 关于 JAVA 聊天室概述 ..............................................................................................................................- 1 -
1.1.1选题的依据及课题的意义............................................................................................................. - 1 -
1.1.2开发语言的选择............................................................................................................................. - 2 -
二、开发环境简介 ........................................................................................................................................ - 2 -
2.1 开发工具的选择...................................................................................................................................... - 2 -
2.2 关于 JDK1.4............................................................................................................................................. - 3 -
2.3JAVA 开发环境的建立 .............................................................................................................................. - 3 -
三、项目概况................................................................................................................................................ - 4 -
3.1 功能简介.................................................................................................................................................. - 4 -
3.2 套接字通信 .............................................................................................................................................. - 4 -
四、概要设计................................................................................................................................................ - 5 -
4.1 聊天室服务器端设计。.......................................................................................................................... - 6 -
五、详细设计................................................................................................................................................ - 7 -
5.1 服务器端的设计...................................................................................................................................... - 7 -
5.1.1服务器端的界面设计..................................................................................................................... - 7 -
5.1.2服务器界面代码实现如下:......................................................................................................... - 8 -
5.2 服务器端的设计.................................................................................................................................... - 17 -
5.2.1客户端的界面设计....................................................................................................................... - 17 -
6.本项目小结 ..............................................................................................................................................- 18 -
参考文献......................................................................................................................................................- 19 -
结束语..........................................................................................................................................................- 19 -
摘要
本系统是 java 基于 c/s 模式的聊天室程序。聊天室共分为服务器端和客户端两个
部分,服务器端程序主要负责侦听客户端发来的消息,客户端需要登录到服务器端才
能实现正常的聊天功能。
基于 Java 的聊天室是利用 Eclipse 开发包工具进行开发出的一款网络聊天室。这
款聊天室是套接字通信开发采用 c/s 模式的聊天室程序。聊天室共分为服务器端和客
户端两个部分,服务器端程序主要负责侦听客户端发来的消息,客户端需要登录到服
务器端才能实现正常的聊天功能。
本文分为七个部分,第一章详细介绍了 J2ME 的发展历史以及 MIDP 程序的基本框
架生命周期以及手机多媒体的发展,第二部分介绍了开发工具的选择以及开发环境的
搭建,第三到第五部分是系统的设计过程包括需求分析,系统的概要设计和详细设
计,第六部分是系统测试与发布。
关键词:JAVA 聊天室
一、绪论.
1.1 关于 Java 聊天室概述
1.1.1 选题的依据及课题的意义
随着网络信息时代的来临,INTERNET 应用越来越广泛,人们越来越习惯于在网上
获取和交流信息。据调查显示,80%以上的人上网都会打开聊天工具来聊天,而几乎每
一个年轻人都会去聊天。使用网上聊天已经成为现代年轻人一种新的交往方式。
根 据 网 上 调 查 , 在 所 有 参 加 网 上 聊 天 的 大 学 生 中 , 进 聊 天 室 进 行 聊 天 的 占
69.65%,使用网络寻呼机进行聊天的占 37.93%,还有 2.75%的受访者声称自己使用其
他方式进行聊天。进聊天室聊天是一种较为公共的聊天方式,而使用网络寻呼机则是
一种具有排他性的聊天方式,一般能够用网络寻呼机进行联络的,都是比较熟悉的网
友。使用网络寻呼机还意味着使用者希望自己的网友随时与自己联系,表现出一种开
放性的网上交际观念。聊天室更适合于陌生人之间进行较为主观、感兴化的讨论。所
以有大部分的人会进入聊天室聊天,它会给人一个完全自由的聊天世界。
作为一个信息技术专业的学生,经过几年大学知识的系统学习,应该对计算机科
学与技术这个名词有了一定的认识。在这几年里,我对本专业学习也有了长足的进
步,在毕业即临时,我就选择了自己感兴趣的基于 API 的聊天室这个课题作为我的毕
业设计及论文写作,以检验几年来的学习情况。
- 1 -
1.1.2 开发语言的选择
聊天室的发展呈现万花筒般的发展,开发工具可以是 asp,php,cgi,vc++,c#,java
等等,做出的聊天室各有千秋,本人以 java 为开发语言,对聊天室进行开发。
相信熟悉 Java 演进历史的人或多或少都听说过,Java 技术一开始并非就叫做
Java,而是叫做 OAK,而且最早的时候就是为了嵌入式系统而设计的一项产品。后来因
为网际网路的发达,而 OAK 的诸多特性刚好又适合用在网路上(例如可移植性、编译后
程序码很小),因为商标已被注册的关系,因此 OAK 被改名成 Java,从此因缘际会地成
了网路上的闪亮巨星,并随著时间越来越成熟,也慢慢地产生了许多非原本预期中的
相关运用。虽然 Java 已经被用到许多企业级软件上,可是其实骨子里面还是非常适合
用在嵌入式系统之中。
从上图可以看到从 Java1.0 发表之后,Java 就被广泛地使用在桌上型应用程序以
及 Applet 的开发上,但是,从 Java1.1 开始,Java 又回到了它一开始的老路--也就是
嵌 入 式 系 统 方 面 的 应 用 , 在 当 时 SunMicrosystems 发 表 了 EmbeddedJava 与
PersonalJava(也有人简称为 PJava)这两项规格。其中 EmbeddedJava 是为了资源十分
有限,而且没有显示设备的嵌入式装置而设计;PersonalJava 则是为了在能够与网际
网路连线、并拥有显示系统(例如彩色 LCD)的消费性电子装置而设计。接着 Java 的版
本演进到 Java2,这时为了再明显区分各种 Java 的应用,所以分割出了 J2EE、J2SE、
以及 J2ME 三种版本。所有 JAVA 版本与其所依据的虚拟器所堆积起来的结构如图 1.1
所示。
图 1.1JAVA 各版本结构
二、开发环境简介
2.1 开发工具的选择
操作系统:linux
开发工具:
- 2 -
JDK1.4
Eclipse、Eclipseme 插件
2.2 关于 JDK1.4
.JDK 是 Sun 公 司 分 发 的 免 费 Java 开 发 工 具 , JavaSDK 最 早 叫
JavaSoftwareDevelopKit,后来改名为 JDK,即 JavaDevelopKit。JDK 作为 Java 开发
工具包,主要用于构建在 Java 平台上运行的应用程序、Applet 和组件等。
2.3JAVA 开发环境的建立
为了能够编写并运行我们所编写的 JAVA 程序,我们需要在自己的本地机器中安装
JDK 开发包,JDK 是内置各种 JAVA 开发工具,JAVA 虚拟机,JAVAAPI 的一个压缩包。
(1)从 java.sun.com 下载 J2SDK,最新的版本是 1.4.2_08,下载后的 JDK 是个
执行文件,我们运行后可直接安装,缺省的安装目录是 C:\j2sdk1.4.2_08。
(2)在电脑中配置环境变量,点右键打开我的电脑属性,在高级中有个环境变
量 , 选 择 新 建 系 统 变 量 : CLASSPATH , 变 量 值 :
“C:\j2sdk1.4.2_07\lib\tools.jar;C:\j2sdk1.4.2_07\lib\dt.jar;”,再新建变量
名:PATH,变量值:“C:\j2sdk1.4.2_07;C:\j2sdk1.4.2_07\bin;”。具体设置如图
2-3 所示:
图 2.1 系统环境变量配置
(4)选择一个编译工具。Eclipse 是一款非常优秀的开源 IDE,非常适合 Java 开
发,由于支持插件技术,受到了越来越多的开发者的欢迎。最新的 Eclipse3.1 不但界
面做了很大的增强,而且增加了代码折叠等众多优秀功能,速度也有明显的提升。配
合众多另人眼花缭乱的插件,完全可以满足从企业级 Java 应用到手机终端 Java 游戏
的开发。本人选择了 Eclipse 作为这次毕业设计的工具,选择 Eclipse 作为开发的理
- 3 -
由再简单不过了,占用资源少,JBuilder2005 和 SunONEStudio8.0ME 建议标准内存 1G
以上,最低 512M,目前国内个人电脑一般都达不到这个配置。同时 Eclipse 目前基本
为国内开发 Java 程序的标准的 IDE,使用 Eclipse 将使手机程序开发更加简洁。
(5)安装 Eclipse 插件,并进行相应的配置[5]。
三、项目概况
3.1 功能简介
本系统是 java 基于 c/s 模式的聊天室程序。聊天室共分为服务器端和客户端两个
部分,服务器端程序主要负责侦听客户端发来的消息,客户端需要登录到服务器端才
能实现正常的聊天功能。
(1)服务器端的主要功能有:
a.在特定端口上进行侦听,等待客户端连接。
b.用户可以配置服务器的侦听端口,默认是 8889。
c.可以向已经连接的客户端发送体统消息。
d.统计在线人数。
e.停止服务时,断开所有的用户连接。
(2)客户端的主要功能有:
a.连接到已经开启聊天服务的服务端。
b.用户可以配置要连接的服务器 IP 地址和端口号。
c.用户可以配置连接后的用户名。
d.服务器开启时,用户可以随时登录与注消。
c.用户可以想所有的人或者指定的个人发送消息。
3.2 套接字通信
套接字通信(socket)是网络的基本通信单元,又称为端口,通常用来实现客户
方和服务方的连接。网络上的两个程序通过双向的连接实现数据的交换,实现双方通
- 4 -
信前链路的每一端都建立一个 socket,通过对 socket 的读写操作实现网络的通信功
能。
socket 通信的过程主要有:创建 socket,打开连接到 socket 的输入流和输出
流,按照一定的协议对 socket 进行读写操作,关闭 socket 这四个步骤,通过这个四
个步骤可以完成一般的 socket 通信。为了完成 socket 通信,java.net 包中提供了
socket 和 serverSocket 这两个类,它们分别用来表示双向连接的客户端和服务器断,
它们的构造函数有:
Socket()
通过系统默认类型的 SocketImpl 创建未连接套接字
Socket(InetAddressaddress,intport)
创建一个流套接字并将其连接到指定 IP 地址的指定端口号。
Socket(InetAddressaddress,intport,InetAddresslocalAddr,intlocalPort)
创建一个套接字并将其连接到指定远程端口上的指定远程地址。
Socket(Proxyproxy)
根据不管其他设置如何都应使用的指定代理类型(如果有),创建一个未连接的
套接字。
protectedSocket(SocketImplimpl)
创建带有用户指定的 SocketImpl 的未连接 Socket。
Socket(Stringhost,intport)
创建一个流套接字并将其连接到指定主机上的指定端口号。
Socket(Stringhost,intport,InetAddresslocalAddr,intlocalPort)
创建一个套接字并将其连接到指定远程主机上的指定远程端口。
其中端口号涉及到一个分配的问题,TCP/IP 将端口号分成了两个部分,少量的作
为保留端口,端口号小于 256,以全局方式分配给服务进程。因此每一个标准服务器都
拥有一个全局公认的端口,即使在不同的机器上其端口号也是不同的。对于常见的端
口号主要有:80 端口提供 www 服务,23 提供 ftp 服务,110 提供 pop 服务。剩余的为
自由端口,
四、概要设计
本系统是 java 基于 c/s 模式的聊天室程序。聊天室共分为服务器端和客户端两个
部分,服务器端程序主要负责侦听客户端发来的消息,客户端需要登录到服务器端才
- 5 -
服务器端的程序
客户端的程序
建立连接
能实现正常的聊天功能。
4.1 聊天室服务器端设计。
(1)图形界面的设计事件处理。
调 用 java.swing 和 java.awt 包 进 行 图 形 界 面 处 理 和 java.swing.event 与
java.awt.event 事件的侦听处理。
(2)实现服务器消息的收发。
分别定义向所有用户或某一个用户发送消息的方法。
(3)定义用户的管理
定义添加用户,删除用户,返回用户数目,根据用户名查找用户,根据索引查找
用户。
(4)设计帮助文档
单击帮助按钮,弹出一对话框显示本系统的有关信息.
...........4.2 聊天室客户端设计
(1)图形界面以及事件处理
调 用 java.swing 和 java.awt 包 进 行 图 形 界 面 处 理 和 java.swing.event 与
java.awt.event 事件的侦听处理。
(2)实现消息的收发
分别定义向所有用户或某一个用户发送消息的方法。
(3)侦听端口的修改配置
- 6 -
用户对所要连接的服务器 IP 及侦听端口进行修改配置
(4)设计帮助文档
单击帮助按钮,弹出一对话框显示本系统的有关信息.为用户提供信息帮助。
五、详细设计
5.1 服务器端的设计
5.1.1 服务器端的界面设计
界面设计在应用程序很重要。造就一款成功的聊天室软件,抛开其他各种因素不
谈,主菜单的设计非常重要,其关键是可用性。
界面的可用性是指高效、易用、易学、易记。如果用户界面不友好,即使用户对
其感兴趣,由于菜单的原因使缺乏人性化设置,用户也不会再使用这个软件。一个友
好的界面是非常关键的,界面设计必须在软件设计时就进行事件添加和事件侦听和事
件 处 理 。 调 用 serverlisten ( ) 来 实 现 服 务 端 用 户 上 线 和 下 线 的 侦 听 , 调 用
serverReceive()来实现服务器的消息收发。
服务器端的界面如下:
- 7 -