基于JAVA的UAW聊天室系统 —— Server端的设计与实现 [摘要] 随着Internet的发展,在Email、WWW等应用日益成熟的同时,广大网络用户对在线实时通讯系统的需求不断扩大。用JAVA开发的聊天室系统弥补了纯文本非实时通讯的不足,既增加了形象性,又加强了交互性。 UAW (Up Against the Wind),基于JAVA实现,是一个C/S模式的聊天室系统,包括服务端和若干客户端,客户端之间通过向服务端发送消息,进而由服务器端进行信息的分类并发送到客户端,从而实现聊天。本文主要解决UAW服务器模块的设计与实现,从它的扩展性入手,设计出聊天室系统的程序框架。在通讯技术中,选用Socket通讯机制实现客户端与服务器端的信息交换,并采用多线程机制,每个线程对应一个客户端,从而简化了网络中的技术细节,方便可行。此外,在服务端,聊天室服务器实现的功能有:登录、公聊、私聊、屏蔽用户、得到在线列表、统计在线人数、更换房间、退出等。 关键词 聊天室 JAVA Socket 多线程 目录 第一章 绪论 6 1.1项目说明 6 1.1.1聊天室发展概况 6 1.1.2选用Java语言的原因 6 1.2 项目计划 6 1.2.1 项目名称 7 1.2.2 项目目标 7 1.2.3 项目范围 7 1.2.4 开发方法 7 1.2.5 开发周期 7 1.2.6 所需技术 8 1.2.7 开发工具 8 第二章 UAW服务器端概要设计 9 2.1 功能描述 9 2.2 程序设计步骤 9 2.3 图示解答(针对程序设计步骤) 10 2.4 程序实现步骤 13 2.5 程序验证 13 第三章 UAW服务器端详细设计(关键技术从原理到实现) 13 3.1 SOCKET 应用 14 3.1.1 Socket 原理 14 3.1.2 Java Socket 15 3.1.3 UAW Server Socket实现过程及部分源代码分析 16 3.1.3.1 Server Socket 实现流程 16 3.1.3.2 所需的类和方法 16 3.2 THREAD应用 17 3.2.1 Thread原理 17 3.2.3 UAW Thread实现过程及部分源代码分析 19 3.3 信息标签 21 3.3.1 定义 21 3.3.2 功能及程序设计思路 21 3.3.2.1 HELO —— 初始化向服务器端的连接 21 3.3.2.2 QUIT —— 退出聊天室 22 3.3.2.3 KICK —— 踢出违规用户 23 3.3.2.4 CHRO —— 更换房间 23 3.3.2.5 MESS —— 发送公共信息 24 3.3.2.6 PRIV —— 悄悄话 24 3.3.2.7 ROCO —— 统计在线用户数 25 3.4 JAVA 中文显示 26 3.4.1 Java中文问题的来源 26 3.4.2 UAW 中文显示实现过程及部分源代码分析 27 3.5 JAVA.UTIL.PROPERTIES公共类 28 3.5.1 优点 28 3.5.2 UAW 属性文件的操作过程及部分源代码分析 28 第四章 系统测试 30 4.1 登陆界面 30 4.1.1 测试用例 30 4.1.2 界面显示 30 4.2 聊天室主界面 31 4.2.1 测试用例 31 4.2.2 界面显示 31 4.3 公聊界面 31 4.3.1 测试用例 32 4.3.2 界面显示 32 4.4 私聊界面 32 4.4.1 测试用例 33 4.4.2 界面显示 33 4.5 服务器端界面 34 4.5.1 测试用例 34 4.5.2 界面显示 34 第五章 结束语 35 致谢语 36 [参考文献] 37
1.1项目说明 1.1.1聊天室发展概况 网络化是计算机应用和现代生活发展的新方向,它使计算机的功能得以充分发挥和应用。截至2004年底,我国互联网用户数已突破9000万人次,并且发展速度越来越快。网络时代的到来,无疑对人们的传统生活带来了重大的变革和深远的影响,也给我们的生活引入了全新的概念。网络以其高速性、自由性、时尚性、虚拟性、广泛性吸引了各个年龄层的关注,加之网络互动也是人际交往的一种,也是人们彼此交流各种思想、观点、态度、意见,彼此沟通感情的过程。基于网络特有的性质和人们自身的需要,各种聊天工具应运而生,聊天室便是其中的产物之一。聊天室是社群齐聚的场所,其轻松的环境、活跃的气氛有助于疏缓人际压力、排解精神抑郁,具有不可忽视的社会功能;同时,聊天室也是蕴藏商机的地方,吸引网友长时间驻留能增加网站的使用率、有效增加网络广告收入等优点显而易见,而且是否能有效利用所聚集的聊天人潮,引导其使用网站的各项服务,也将成为网站未来经营发展的晴雨表。 1.1.2选用Java语言的原因 现在大部分网站提供的聊天室服务都是借助Web服务器,利用JSP、ASP动态网页技术来实现,这种方法的优点是技术难度低,容易实现,缺点是支持在线人数很有限,一旦上线的人多了,速度就会变慢,并且严重占用内存,最后还可能导致服务器死机,严重影响提供的聊天服务的质量。在相同的服务器硬件配置下,为了解决能支持更多的人同时在线,可以单独设计一个聊天室服务器,把它从Web服务器中分离出来,从而大大地提高服务对象的人数。结合聊天室服务器及Java语言的简单易用性、平台独立性、强大的网络功能、多线程机制等特点,利用Java开发聊天室可以适应更多的操作系统平台,因此,我们认为Java是最好的选择。 1.2 项目计划 1.2.1 项目名称 聊天室名称:UAW(取意 Up Against the Wind) 1.2.2 项目目标 ⑴ 允许新用户经过系统检测登陆聊天室 ⑵ 得到在线列表 ⑶ 允许用户进行在线公聊 ⑷ 允许用户进行在线私聊 ⑸ 允许用户屏蔽指定用户 ⑹ 用户可发送图片信息 ⑺ 允许用户更换房间 ⑻ 管理员可增加、删除、修改房间信息 ⑼ 管理员可更改服务器端口号 ⑽ 管理员可查看在线用户数 ⑾ 友好、舒适、操作简便的聊天界面 |