JAVA聊天室实验报告

JAVA聊天室实验报告
JAVA聊天室实验报告

Java聊天室实验报告

班级: ****** 学号: ******** 姓名: ***

目录:

一、实验目的 (3)

二、所需技术 (3)

三、需求分析 (3)

四、系统设计 (4)

1、服务器结构 (4)

2、客户端结构 (4)

五、实现细节 (5)

1、客户端细节 (5)

2、服务器细节 (6)

六、系统展示 .......................................... . (7)

七、实验小结 .......................................... . (9)

Rain153 WeChat 聊天室系统

一、实验目的:

1、使用Java技术完成聊天室系统,深入学习使用Java语言。

2、使用Java 的多线程机制,深入理解Java多线程技术的应用。

3、使用GUI,对JFrame的深入学习。

4、使用网络编程,掌握基于TCP协议的Socket编程,了解Socket编程的

协议约定,掌握简单应用协议的开发。

5、使用C/S架构,对网络编程有一定的了解。

二、所需技术

本系统要求使用java技术开发。所需知识包括java程序设计语言、swing 基本GUI组件、多线程编程、socket编程、集成开发环境使用eclipse。系统采用两层C/S体系结构,C端负责通过GUI与客户交互,实现注册、登陆、收发信息、退出等功能; S端是聊天系统的服务器。

三、需求分析

开发一个类似QQ 的聊天室系统,即WeChat聊天系统。该系统应具有如下功能:

1、用户注册、登录

2、群聊;

3、私聊;

4、服务器发送系统消息;

5、服务器踢人;

6、保存日志;

7、保存聊天信息;

四、系统设计

1、服务器结构

服务器端结构图示

2、客户端结构

客户端结构图示

1、AppServer.java 为服务器端监听类,负责服务器的启动,包括启动监听

端口、服务器监控界面。

2、ServerFrame.java 为服务器监控窗体,负责监控服务器运行状态。

3、Connection.java 为服务器连接处理的具体实现。

4、ChatClient.java 为客户端程序启动类,负责客户端的启动和退出。

5、Login.java 为客户端程序登录界面,负责用户帐号信息的验证与反馈。

6、Register.java 为客户端程序注册界面,负责用户帐号信息的注册验证与反馈。

7、ChatRoom.java 为客户端程序聊天室主界面,负责接收、发送聊天内容与服

务器的Connection合作。

8、Windowclose 为ChatRoom.java的内部类,负责监听聊天室界面的操作,当

用户退出时返回给服务器信息。

9、Clock.java 为客户端程序的一个小程序,实现的一个石英钟功能。(可选)

五、实现细节

概述:聊天室主要功能的实现:从界面输入登录信息,然后与服务器建立Socket连接(连接时应指定服务器的IP地址和端口号,而客户端socket的端口由本方操作系统从空闲端口中确定),服务器端的“倾听Socket”收到连接请求后,一般会接受连接请求,并生成一个服务端socket,专门负责与此客户端socket的通信。一旦连接请求成功,客户端将信息及请求通过本方socket的输出流发送给服务器端相应的socket,服务端则通过服务器端Socket的输入流接受客户端传输过来的信息及请求,分析是何请求,然后根据请求类型,进行相应的处理(如登录、转发信息等)。服务方也可以根据需要,通过socket的输出流发信息和请求给客户端(公告)。客户方和服务方都可以通过关闭本方的socket 而结束一次通讯过程。为了实现多客户在线的请求,使用多线程机制来处理,对每一个客户端连接通讯,服务器端都有一个线程专门负责处理。

一)客户端细节

1、注册:

当选择注册时,Register界面等待用户输入注册信息,并将信息封装成Register_Customer类,然后通过建立在Socket的连接之上的对象输出流将用户注册信息发送给服务器端,服务器端将请求转发给Connection处理,Connection 在收到信息后将验证数据的完整性并在数据库中查找该用户名是否已经注册,然后将注册信息加入数据库,最后将注册结果返回给客户端。

客户端显示注册结果。

2、登录:

当选择登录时,客户端由Login 界面等待用户输入登录信息后,封装成Customer对象类然后通过建立在Socket的连接之上的对象输出流将用户登录信息发送给服务器端,服务器端将请求转发给Connection处理,Connection 在收到信息后将验证数据的完整性并在对象型数据库中查找该用户名是否已经注册,然后将注册用户的信息与登录请求信息进行密码验证,在登录成功后将该用户添加到在线用户列表,最后将登录结果返回给客户端。若登录成功,客户端将启动聊天室主界面。

3、聊天

a、发送聊天信息:私聊功能需在在线列表中选中私聊聊天对象,并勾选

私聊选项。群聊功能取消对私聊功能的勾选即可。当用户点击完发送按钮后,程序开始将当前用户名、聊天对象、聊天内容、表情和是否私聊进行封装,然后获取Socket连接,再用对象输出流包装Socket的输出流将聊天信息对象发送给服务器端。

b、接收聊天信息:用一个单独的接收线程实现,客户端必须随时接收

服务器发来的消息,而读取消息的方法采用的是阻塞式方法,若在事件处理程序中读(占用的是事件处理线程)则会使程序在此后无法响应用户操作,所以需要生成一个单独的线程专门用于读取处理消息。而发送消息的方法则是将消息放入操作系统的发送缓冲区后就返回的,所以发送执行的相当快,可以在事件处理线程中直接调用。发送和接收可以同时进行。二)服务器端细节

1、注册:创建一个File文件类,载入“user.txt”,再用对象输入流

ObjectInputStream包装File文件类,将存储在“user.txt”得向量对象Vector中载入内存中,现在系统中的向量就是对象型数据库,存储着每条用户信息对象。判断是否是第一个注册用户,判断用户名是否已经存在,判断用户名是否为系统关键字,用户名有效后写入数据库,并给客户端返回信息,关闭Socket连接。

2、登录:去数据库读用户数据,打开用户数据库文件“user.txt”,将用户

数据对象集载入内存,以供下面的程序使用。验证用户名是否存在,验证用户密码是否正确,验证用户是否已经登录,验证是否已经超过最大登录人数,如果以上验证全部正确,返回客户端信息,关闭Socket连接。

3、退出:接收退出信息,当用户退出时,客户端将会用基于Socket的对象

输出流发给服务器退出对象,把用户从在线列表中删除,更新在线列表。

4、聊天:接收用户聊天信息,当用户发送聊天信息时,服务端将会收到客户

端用Socket传输过来的聊天信息对象,然后将其转换为Message对象,返回聊天信息,然后系统从Message中提出消息类型,再根据类型将消息强制转化ChatMessage,调用ChatMeaage中方法,获取目的客户名称列表,根据目的地用户名从用户名、socket键值表中获取socket,再通过socket将Message 转发到相应的用户。

六、系统展示

1、注册

客户端注册界面

2、登录

客户端登录界面

3、聊天界面

聊天界面

4、服务器界面

服务器管理界面

服务器用户信息管理界面

七、实验小结

本次实验是比较复杂的一个题目,采用C/S架构设计的聊天室,使用增量迭代方式开发,从初始的0.1版到最终的2.0正式版。通过本次实验,对C/S架构有了较深的认识,也对多线程编程、网络编程、GUI的认识更清晰。在项目中遇到很多问题,在解决问题的过程中,对Java也渐渐的熟悉,尤其是对各种异常的处理更是对自己的一种锻炼。在此次实验中应用了很多上课时未讲到的知识,自己查阅API,阅读JDK源码学习方法的使用让自己收获颇丰。由于这是一个人的项目,虽然在项目的实施上很自由,可到问题没有人讨论,耗费了很多精力,不过这也是提高自己的好方法。

该Rain153 WeChat聊天室由于时间原因,很多功能实现的并不合理,也有些功能尚未实现。Rain153 WeChat并未与数据库连接,只是简单的用文件保存用具信息及消息记录。

聊天室系统设计报告

青岛科技大学操作系统课程设计 学生班级计算机132班 学生学号1308010204 学生姓名王永远 2016 5 18 ______年 ___月 ___日

目录 设计题目:聊天室系统 (3) 一、设计目的及要求 (3) 1.1设计目的 (3) 1.2设计要求: (3) 二、技术背景 (3) 2.1网络编程 (3) 2.2网络通信 (3) 2.3 Socket (3) 2.4 TCP传输 (4) 2.5 Java的多线程机制 (4) 三、需求分析 (4) 3.1客户端 (4) 3.1.1登录 (4) 3.1.2多人聊天 (4) 3.1.3单人聊天 (5) 3.2服务器端 (5) 四、总体设计 (5) 4.1设计思想流程图 (5) 4.2设计思想分析 (6) 五、详细设计 (6) 5.1客户端设计 (7) 5.1.1登录界面 (7) 5.1.2聊天室界面 (7) 5.1.3单人聊天界面 (7) 5.2服务器端设计 (8) 六、系统测试 (8) 6.1登录测试 (8) 6.1.1用户名为英文字母 (8) 6.1.2用户名为中文 (9) 6.1.3用户名为标点符号 (9) 6.1.4多个用户有重名 (10) 6.1.5服务器地址不合法 (11) 6.1.6端口号不合法 (12) 6.1.7服务器未开启 (12) 6.2群发消息测试 (13) 6.3私聊测试 (15) 6.4用户列表显示测试 (16) 七、心得体会 (16) 八、参考资料 (16) 九、程序清单 (16)

设计题目:聊天室系统 一、设计目的及要求 1.1设计目的 通过该聊天室系统,掌握网络编程的概念及基于网络的C/S模式软件系统开发,掌握基于TCP 协议的Socket编程,掌握Java的多线程机制。 1.2设计要求: 实现多个用户之间类似于QQ的聊天程序,有聊天界面,多用户之间既可以实现群聊,也可以单独聊天。 二、技术背景 2.1网络编程 就是用来实现网络互连的不同计算机上运行的程序间可以进行数据交换。 2.2网络通信 (1)IP地址:网络中设备的标识,不易记忆,可用主机名 要想让网络中的计算机能够互相通信,必须为每台计算机指定一个标识号,通过这个标识号来指定要接受数据的计算机和识别发送的计算机,在TCP/IP协议中,这个标识号就是IP地址。 (2)端口号:用于标识进程的逻辑地址 物理端口网卡口 逻辑端口我们指的就是逻辑端口 A:每个网络程序都会至少有一个逻辑端口 B:用于标识进程的逻辑地址,不同进程的标识 C:有效端口:0~65535,其中0~1024系统使用或保留端口。 (3)传输协议:通信的规则,常见的有UDP,TCP UDP:将数据源和目的封装成数据包中,不需要建立连接;每个数据报的大小在限制在64k;因无连接,是不可靠协议;不需要建立连接,速度快。 TCP:建立连接,形成传输数据的通道;在连接中进行大数据量传输;通过三次握手完成连接,是可靠协议;必须建立连接,效率会稍低。 2.3 Socket (1)Socket套接字 网络上具有唯一标识的IP地址和端口号组合在一起才能构成唯一能识别的标识符套接字。 (2)Socket原理机制 A:通信的两端都有Socket。 B:网络通信其实就是Socket间的通信。 C:数据在两个Socket间通过IO传输。

java课程设计报告(java聊天室)

Java聊天室课程设计 一、需求分析 1.1开发背景 在信息化社会的今天,网络飞速发展,人们对网络的依赖越来越多,越来越离不开网络,由此而产生的聊天工具越来越多,类似MSN、QQ,网络聊天时一类的聊天系统的发展日新月异,因此产生了制作一个类似QQ的网络聊天工具的想法,且通过制作该程序还能更好的学习网络软件编程知识。 网络编程的目的就是指直接或间接地通过网络协议与其他计算机进行通讯。网编程中有两个主要的问题,一个是如何准确的定位网络上一台或多台主机,另一个就是找到主机后如何可靠高效的进行数据传输。在TCP/IP协议中IP层主要负责网络主机的定位,数据传输的路由,由IP地址可以唯一地确定Internet上的一台主机。而TCP层则提供面向应用的可靠的或非可靠的数据传输机制,这是网络编程的主要对象,一般不需要关心IP层是如何处理数据的。目前较为流行的网络编程模型是客户机/服务器(C/S)结构。即通信双方一方作为服务器等待客户提出请求并予以响应。客户则在需要服务时向服务器提出申请。服务器一般作为守护进程始终运行,监听网络端口,一旦有客户请求,就会启动一个服务进程来响应该客户,同时自己继续监听服务端口,使后来的客户也得到响应的服务。 1.2设计要求 本课程设计的目标是利用套接字socket()设计一个聊天程序,该程序基于C/S模式,客户机器向服务器发聊天请求,服务器应答并能显示客户机发过来的信息。 1.3设计目的 通过设计一个网络聊天程序,对套接字、数据报通讯、URL、与URLConnectiom的相关知识有详细的了解和充分的认识。能将相关的只是运用到相关的实践中去。 1.4功能实现 聊天室共分为客户端和服务端两部分,服务器程序主要负责侦听客户端发来的消息,客户端需要登录到相应的服务器才可以实现正常的聊天功能。 服务器的主要功能有 1)在特定端口上进行侦听,等待客户连接 2)用户可以配置服务器的真挺端口

JAVA聊天室系统的设计与实现

目录 第1章绪论- 1 - 1.1论文背景及课题来源 (1) 1.2本课题在国内外的发展状况 (1) 1.3应解决的问题及系统开发意义 (1) 第2章开发工具及相关技术介绍........................................................................................................... - 2 - 2.1J A V A与S OCKET简介 .. (2) 2.2JB UILDER5介绍 (3) 2.3C/S模型介绍 (3) 2.4用J A V A实现S OCKET模型 (4) 2.5J A V A中的线程模型简介 (5) 2.6SQL SERVER2000简介 (5) 第3章系统需求分析............................................................................................................................... - 6 - 3.1系统任务描述. (6) 3.2系统功能分析 (6) 3.2.1 系统的功能需求....................................................................................................................... - 6 - 3.2.2系统数据流图............................................................................................................................ - 7 - 3.2.3系统数据分析............................................................................................................................ - 8 - 3.3系统可行性分析 (9) 第4章系统设计 .................................................................................................................................... - 11 - 4.1系统总体结构设计 (11) 4.2数据库设计 (12) 4.3系统功能模块详细设计 (13) 第5章编码与实现 ................................................................................................................................ - 16 - 5.1系统主要模块代码 (16) 5.1.1启动、停止服务器.................................................................................................................. - 16 - 5.1.2客户端连接服务器.................................................................................................................. - 17 -

聊天室设计报告

网 络 聊 天 系 统 设 计 报 告 组长:靳子豪 组员:凯强、许玉军、王明明 完成时间:2015年11月3日

一、可行性研究报告 可行性研究报告(ISO标准) 编者说明: 在立项时,应该对项目进行综合分析,探讨项目的经济、社会、技术可行性,从而为决策提供基础。该模板为ISO标准文档模板,其不仅适用于软件项目,对于其它的系统项目也适用。 1.引言 1.1 编写目的 该聊天室项目可行性研究报告是对项目课题的全面考虑,是项目分析员对下一步工作进行的前提,是软件开发人员正确成功开发项目的前提与基础。写可行性研究报告可以使软件开发团体尽可能早的估计研究课题的可行性,较早的认识到系统方案的缺陷,可以少花时间和精力,也可减少成本资金,避免专业性的问题。 1.2 背景 a. 待开发系统的名称:信息交流系统 b 用户:大众 c. 它基于web小浏览器的程序系统的设计与开发, 服务平台:appserv-win 开发语言:PHP 数据库:MY SQL 1.3 定义 技术可行性:分析功能,性能以及限制条件,能否是一个技术上可实现的系统 经济可行性:估计开发费用已及最终从开发成功的系统所获得的收入或利益,衡量比较支出的费用和收到的利益 1.4 参考资料 《软件工程导论》(第6版)清华大学海藩牟永敏编著 可行性研究的前提 2.1 要求 a、聊天室功能 用户的聊天功能,包括数据输入、修改、删除,并要达到界面美观又好、使用方便 b、软件的性能 开发该软件应具有的基本要求与功能是实现用户信息数据包括与用户有关的数据 的管理与操作处理,基于MY SQL的数据库的数据管理使该软件有更优异的性能,软件的基本数据流动为用户数据的输入,用户信息及数据的输出。 c、输出 用户基本信息和聊天容 d、输入 用户根据自身需要,发起聊天 e、安全方面的要求 设置管理员 2.2 目标 该软件的设计目标必须尽量达到人力与设备费用的节省,软件的整个设计过程必须通过生产能力的提高、人员工作效率的提高等等使软件开发成本最小化。 2.3 条件、假定和限制 a、本聊天室建议使用寿命为5-10年 b、法律方面的限制:(1)、严禁危害国家信息安全(2)、严禁损害国家荣誉和利益(3)、严禁传播不良信息(5)、严禁抄袭 2.4 进行可行性研究的方法 成本效益分析、对估算问题的看法、软件的作用围、软件的成本估算、速度安排

聊天室设计报告

聊天室设计报告

————————————————————————————————作者:————————————————————————————————日期: ?

网 络 聊 天 系 统 设 计 报 告 组长:靳子豪 组员:冯凯强、许玉军、王明明

完成时间:2015年11月3日 一、可行性研究报告 可行性研究报告(ISO标准) 编者说明: 在立项时,应该对项目进行综合分析,探讨项目的经济、社会、技术可行性,从而为决策提供基础。该模板为ISO标准文档模板,其不仅适用于软件项目,对于其它的系统项目也适用。 1.引言 1.1 编写目的 该聊天室项目可行性研究报告是对项目课题的全面考虑,是项目分析员对下一步工作进行的前提,是软件开发人员正确成功开发项目的前提与基础。写可行性研究报告可以使软件开发团体尽可能早的估计研究课题的可行性,较早的认识到系统方案的缺陷,可以少花时间和精力,也可减少成本资金,避免专业性的问题。 1.2背景 a. 待开发系统的名称:信息交流系统 b 用户:大众 c.它基于web小浏览器的程序系统的设计与开发, 服务平台:appserv-win 开发语言:PHP 数据库:MY SQL 1.3定义 技术可行性:分析功能,性能以及限制条件,能否是一个技术上可实现的系统经济可行性:估计开发费用已及最终从开发成功的系统所获得的收入或利益,衡量比较支出的费用和收到的利益 1.4 参考资料 《软件工程导论》(第6版)清华大学出版社张海藩牟永敏编著 可行性研究的前提 2.1 要求 a、聊天室功能 用户的聊天功能,包括数据输入、修改、删除,并要达到界面美观又好、 使用方便 b、软件的性能 开发该软件应具有的基本要求与功能是实现用户信息数据包括与用户有关 的数据的管理与操作处理,基于MY SQL的数据库的数据管理使该软件有 更优异的性能,软件的基本数据流动为用户数据的输入,用户信息及数据的 输出。 c、输出 用户基本信息和聊天内容 d、输入 用户根据自身需要,发起聊天 e、安全保密方面的要求 设置管理员 2.2 目标

JAVA聊天室实验报告

JA V A聊天室实验报告 姓名:马琳越 班级:131114 学号:13111368 日期:2014年4月23日

目录 目录 (2) JA V A程序课程设计任务书 (3) 摘要 (4) 第1章引言 (5) 第2章聊天室系统的设计 (7) 第3章界面设计 (11) 第4章总结 .................................................................................. 错误!未定义书签。

Java聊天室的设计任务书 1.主要内容 用JA V A实现基于C/S模式的聊天室系统。聊天室分为服务器端和客户端部分,服务器端程序主要负责侦听客户端发来的信息,客户端需要登陆到服务器端才可以实现正常的聊天功能。 2.具体要求 A.服务器端主要功能 (1).在特定端口上进行侦听,等待客户端连接。 (2).用户可以配置服务器端的侦听端口,默认端口为8888。 (3).向已经连接到服务器端的用户发送系统消息。 B. 客户端主要功能 (1).连接到已经开启聊天服务的服务器端。 (2).用户可以配置要连接的服务器端的IP地址和端口号。 (3).用户可以配置连接后显示的用户名。 (4).用户可以向所有人或某一个人发送消息。 3.主要参考文献及运用工具 (1)Bruce Eckel 著Thinking in Java ,李刚著疯狂Java讲义 (2)使用技术:Java 使用开发工具:Eclipse

摘要 在网络越来越发达的今天,人们对网络的依赖越来越多,越来越离不开网络,由此而产生的聊天工具越来越多,例如,国外的ICQ、国内腾讯公司开发的OICQ。基于Java网络编程的强大功能,本次大作业要求使用Java编写一个聊天系统。 一般来说,聊天工具大多数由客户端程序和服务器程序外加服务器端用于存放客户数据的数据库组成,但是,由于自己数据库知识的部分遗忘,本程序未连接数据库,采用客户机/服务器架构模式,通过Java提供的Soket类来连接客户机和服务器并使客户机和服务器之间相互通信。 本系统建立在JAVA平台上,系统的设计使用了面向对象技术和面向对象的设计原则。系统采用C/S结构,客户端与客户端以及客户端与服务器端之间通过Socket传送消息。使用JAVA语言编写,开发工具采用Eclipse。服务器端设计与实现过程中,采用了多线程技术,可以在单个程序当中同时运行多个不同的线程,执行不同的任务。大大增强了程序对服务器资源的利用。 聊天系统完成后将可进行多人对多人的聊天,对好友进行添加、删除,对新用户的注册,发送消息、接受消息等等功能。

Java聊天室系统程序设计实验报告材料

Java聊天室系统程序设计 实验报告 院(系):信息与通信工程系 专业:计算机应用技术 班级: 学号: 姓名: 指导老师: 2013/6/8

目录 第一部分:系统设计总述 (2) 1.设计目的: (2) 2.设计总体要求: (2) 3.实现目的: (2) 第二部分:系统需求分析 (3) 1.系统任务描述 (3) 2.系统功能分析 (3) 3.系统可行性分析 (3) 第三部分:系统设计 (4) 1.系统总体结构设计 (4) 2.系统主体的处理流程 (5) 3.系统流程逻辑 (5) 第四部分:代码分析 (6) 1.服务器端部分代码 (6) 2.客户端部分代码 (6) 第五部分:系统的具体实现 (6) 界面设计 (6) 第六部分:小结 (10) 第七部分:参考文献 (10)

1.设计目的: 1.在开发技术和过程中,能够充分学习和使用JAVA的技术,进一步培养学生面向对象程序 设计的思想,加深对面向对象程序设计特性的理解。 2.学会Java程序开发的环境搭建与配置,并在实际运用中学习和掌握Java程序开发的全 过程。 3.进一步熟悉掌握Java程序设计语言的基础内容,如用户图形界面设计、文件和网络输入 输出流编程、Java数据库编程等。 4.通过亲自动手写程序,一方面拓展知识面,一方面锻炼调试能力。 2.设计总体要求: 1.问题的描述与程序将要实现的具体功能。 2.程序功能实现的具体设计思路或框架,并检查流程设计。 3.代码实现。 4.程序测试。 5.设计小结(包括) 3.实现目的: 本软件是一个实用聊天程序。项目要实现以下目标: 1)建立服务器端和客户端并进行连接; 2)利用线程设计结构合理,运行效率较高的聊天室; 3)实现写消息,发消息,回复,查看聊天记录等功能;

聊天室程序设计报告

实验5 掌握简单的网络通讯技术 实验6 掌握基于典型协议的的网络通讯技术 一实验目的 1.熟悉Socket的通讯机制,了解网络程序的设计方法。 2. 熟悉典型协议的通讯机制,掌握基于它们的网络系统设计方法。如TCP、UDP。 二实验环境 1.Windows7 2.Visual C++ 6.0 三实验程序设计 1.实验原理 1.C/S模式 C/S模式是指一个服务器同时为多个客户端服务。并发性是C/S模式的的基础,正是由于并发性的支持,多个客户端能够获得同一种服务,而不必等待服务器完成对上一个请求的处理。 在C/S模式中,当请求到达服务器时,服务器将它交给一个控制线程,它能与已有的线程并发的执行。 在设计并发服务器时,一般服务器代码由两部分组成,第一部分代码负责监听并接收客户端的请求,还负责为客户端请求创建新的服务线程;另一部分代码负责处理单个客户机请求,如与客户机交换数据,提供具体服务。 下图所示为服务器创建多个线程来为多个客户机服务。 2.基于TCP的socket通信 服务器与客户端是通过套接字来进行通信的。 在基于TCP的网络通信程序中,首先服务器端通过socket()函数创建套接字,然后通过bind()函数来命名套接字,调用listen()函数开启服务器端的监听。接着执行accept()函数来接收客户的连接,服务器阻塞等待客户连接请求,直到有客户请求连接。 客户端创建套接字,接着通过connect()函数请求连接服务器,连接成功后,就可以与服务器进行通信了。 服务器与客户机通过send()各recv()调用来进行信息的发送和接收。只有当有信息可接收时,recv()才返回,否则将阻塞。

Java聊天室课程设计报告

UML课程设计 题目网络聊天程序开发设计与实现 学号:201515614376 姓名:卫国辉 指导教师: 完成时间:2017年 12月

目录 1.摘要 (2) 2.绪论 0 2.开发环境 0 3.需求分析 (1) 3.1程序简介 (1) 3.2程序功能 (1) 4.系统设计 (2) 4.1概要设计 (2) 4.2详细设计 (2) 5.测试 (7) 6.结论 (9) 参考文献 (10)

摘要 本次训练主要是考查了对JA V A程序设计的综合运用,设计一个Socket 通信的聊天程序,用户可以通过程序进行聊天通信,但不支持用户自定义表情及图片的发送。 本程序设计也用到了一些相关的标准Java的类,给程序设计带来了许多的方便,但用那些要切记加相应的类的包,还有一些构造方法和个别接口方法。 本程序可以实现用户之间的一些简单的交互,虽然功能较少,但是我想通过这次程序设计来熟悉并且学习更多关于JA V A编程的东西,来便于以后可以使用。 关键词:java聊天

1.绪论 对于一个选择网络编程的人来说,必须要有足够的细心和耐心,因为编程一般来说是很枯燥的乏味的,而且程序会越来越复杂,它所用到的符号、标记很多,所以不能出点小错误的。还有,我们不能只是看程序,要学会把自己学的自己拿去实践,自己去编一些程序,培养自己的动手能力,掌握一些编程技巧,熟练运用自己学到的理论知识,这样在以后才能开发出属于自己的东西。 如今,随着科学技术的发展,计算机已成为了我们生活中必不可少的设备了,而掌握计算机知识和运用,又成了我们每一个人的目标了。现在IT行业的飞速发展,无不应正了以前、现在、将来计算机行业都是科学发展的主导行业。而这些基本上都建立在程序上的,所以程序员对计算机行业来说,可想而知有多么的重要了,他们所付出的每一滴汗水都将推动这个行业的发展。 现在我就用JA V A语言编写一个简单的程序——Java聊天程序。将所学的基本知识用到其中去,这里包括了构造方法,创建图形界面,引用类等等。这不仅能锻炼我的实践能力,同时也进一步复习和巩固了我所学的理论知识。对以前没有学好的还有督促和促进作用。而且,根据需要,还可以了解一些课外的知识。增加自己的知识面。 2.开发环境 在开发此聊天程序时,该项目所使用的软件开发环境如下: 操作系统:Windows 7 开发工具:eclipse3.2及其VE插件

聊天室课程设计报告

网络课程设计设计报告 题目:基于TCP SOCKET的JAVA聊天室 院系名称:计算机学院 专业名称:网络工程 班级: 学生姓名: 学号(8位): 指导教师: 设计起止时间:2011年6月20日~2011年7月1日

第一章功能分析 1.1 需求分析 人们日常生活中越来越多地使用聊天室这项应用来为自己的工作和学习服务。一个操作简单,界面友好、运行稳定的聊天室对于小型局域网的用户可以起到很好的交流作用。所谓聊天室就是一个可以让许多用户同时互相通信的网上园地,个人用户可以通过聊天室将自己融入整个主流社会中。 根据目前使用聊天室的用户需求显示,用户对于聊天室主要有以下几点要求: (1). 与聊天室成员一起聊天。 (2). 可以与聊天室成员私聊。 (3). 可以改变聊天内容风格。 (4). 用户注册(含头像)、登录。 (5). 服务器监控聊天内容。 (6). 服务器过滤非法内容。 (7). 服务器发送通知。 (8). 服务器踢人。 (9). 保存服务器日志。 (10).保存用户聊天信息。 该简易聊天室是为许多喜爱聊天的用户开发设计的,和许多大型的网络聊天室相比该小聊天室功能比较简单,但能实现基本的聊天功能,点对多、点对点聊天和基本的用户功能,登录、查看在线用户等。 1.2 软件功能描述 (1)、户设置:用户自定义自己的登录名,成功设置后,服务端能接收到新设置的用户名。 (2)、登录功能:在服务端开启的情况下,用户可以以自己自定义或者默认的登

录名和登录地址端口登录到客户端,并能在服务器端显示登录状态。 (3)、公聊:用户可以与“所有人”聊天,在线用户可正常接收并正确显示公聊消。 (4)、私聊:用在线用户和其他用户聊天。记录对于聊天室的其他用户是不可见的。 (5)、聊天心情:用户在聊天的过程中可以选择相应的心情来表达自己的情感。 (6)、系统消息:服务端运行,为每一个用户都能接收服务器端发送的信息提示信息。 (7)、用户的状态.每一个客户端用户都可以实时看到目前其他在线用户的状态。 (8)、用户剔除:用户可以被系统剔除,并重新登记登录名和地址。 (9)、用户退出:用户可以在正常情况下退出聊天室。 (10)、服务端控制:服务端开启的情况下,用户才能登陆成功和聊天;用户设置的地址端口也必须与服务端的侦听端口一致,否则不能登录。 第二章主要模块描述及流程图 2. 1 模块介绍 本聊天室分为聊天室服务端和聊天室客户端,服务端与客户端之间通过套接口Socket(TCP)连接。在java中使用套接口相当简单,Java API为处理套接口的通信提供了一个类https://www.360docs.net/doc/5512485085.html,.Socket,服务器采用多线程以满足多用户的请

Java聊天室程序设计报告

计算机与信息科学系 课程设计报告 课程名称:面向对象程序设计—Java 设计题目: Java聊天室程序 专业: 学号: 姓名: 指导老师: 提交时间:2009-6-20

目录 第一章可行性分析报告 (3) 1.1 引言 (3) 1.1.1 编写目的 (4) 1.1.2项目背景 (4) 1.1.3参考资料 (4) 1.2 可行性分析 (5) 1.2.1系统简要描述 (5) 1.2.2系统流程图 (5) 1.2.3经济可行性分析 (5) 第二章需求规格说明书 (7) 2.1 编写目的 (8) 2.2 数据描述 (8) 2.2.1文字叙述 (9) 2.2.2系统数据流图 (9) 2.3 功能划分 (9) 第三章概要设计说明书 (9) 3.1 总体设计 (9) 3.1.1总体结构设计 (9) 3.2.接口设计 (11) 3.3 数据结构设计 (11) 3.3 运行设计 (12) 3.4 维护设计 (12) 第四章详细设计说明书 (12) 4.1 总体设计 (12) 4.1.1需求概要 (13) 4.1.2软件结构 (13) 4.2 模块程序流程 (13) 4.2.1用户登录模块 (13) 4.2.2注册模块 (14) 4.2.3系统总体流程图 (15) 第五章编码测试与实现说明 (15) 5.1 功能模块的测试 (15) 5.2 工作的过程 (16) 5.3 软件设计效果 (16) 第六章设计问题总计 (19) 第七章总结 (19)

可行性分析报告 1.引言 1.1编写目的:可行性研究的目的是为了对问题进行研究,以最小的代价在最短时间内确定问题是 否可解。经过对此项目进行详细调查研究,初拟系统实现报告,对软件开发中将要 面临的问题及其解决方案进行初步设计及合理安排。明确开发风险及其所带来的经 济效益。本报告经审核后,交软件经理审查。 1.2 项目背景: 开发软件名称:Java聊天室小软件 项目任务提出者:**高校 项目开发者:***软件开发小组 用户:**高校 实现软件单位:**高校 项目与其他软件,系统的关系: 开发环境:本项目采用客户机/服务器原理,服务器端采用Windows XP为操作系统的工作站,客户端的程序是建立在Window XP系统上,在JDK1.5上开发,JAVA程序工程采用JCreator、Elipse 为编程工具进行开发。 1.3定义: 事务流:数据进入模块后可能有多种路径进行处理。 主键:数据库表中的关键域。值互不相同。 外部主键:数据库表中与其他表主键关联的域。 1.3.2 缩写 系统:若未特别指出,统指本聊天室系统系统。 1.4 参考资料: 1.《软件工程导论》(第5版)张海藩清华大学出版社 2,《面向对象程序设计–JAVA》第二版张白一编著 3.《Java语言与面向对象程序设计》(清华大学出版)印雯编著 2.可行性研究的前提 2.1 要求 ●主要功能: (1)可以实现群聊的功能 (2)可以实现对注册人员的管理。 ●性能要求:注册人员变动的信息必须在允许的时间内反映在各个客户端,对注册人员的信息必 须无差错的存储在服务器上。对服务器上的数据必须进行及时正确的刷新。 ●输出要求:数据完整,详实。

JAVA聊天室课程设计报告含源代码压缩文件

J A V A聊天室课程设计报 告含源代码压缩文件 IMB standardization office【IMB 5AB- IMBK 08- IMB 2C】

南京晓庄学院 《JAVA程序设计》 课程设计报告 题目: 姓名: 学号: 班级: 14软件工程3班 指导教师: 王峥 完成时间 成绩: 信息工程学院 2016年6月

目录 Java聊天室的设计与实现 引言 Java聊天室开发背景 在网络越来越发达的今天,人们对网络的依赖越来越多,越来越离不开网络,由此而产生的聊天工具越来越多,类似QQ、MSN,网络聊天时一类的聊天系统的发展日新月异,因此产生了制作一个有简单聊天功能的网络聊天程序;而且通过制作该程序还能更好的学习网络软件编程知识。 本程序设计简单可以实现在同一局域网的聊天,程序可以自动扫描已经上线的用户,上线用户可在同一聊天界面中实现群聊。如果需要与其中的用户进行交谈,则只需双击右侧用户列表,读取对方IP地址,便可在下面的输入框内输入信息进行发送,实现一对一私聊功能。 1.1Java聊天室开发的目的和意义 目的:(1)理解进程消息通信的概念,如何实现两个创建进程之间的数据传递。 (2)理解进程共享变量的进程通信。 (3)熟悉并掌握java语言的代码编写 (4)熟练使用开发工具Eclipse (5)实现聊天室的一些基本功能 意义:(1)实现局域网中的信息交互,界面尽量人性化且美观,让用户便于接受

(2)用户及时获取自己想要的信息、促进交谈 (3)异常处理,对于用户错误的操作使用程序会有提示消息 (4)前期仅实现其基本雏形,后期可扩性很高,可实现统计在线人数,发送图片,界面美化,用户登陆注册信息的采集,连接到数据库etc. (5)后期可便于网站自身的广告宣传与商品推广 因所学知识和能力的局限性,仅能完成有限范围内的雏形生成与功能实现,后期的功能实现需要进一步的深入学习才能使本课程设计日益完善。 1.2完成的主要工作 (1)需求分析与总体设计、详细设计、代码分析 (2)实现程序所能运行的功能 (3)选择Window系统,并选择该操作系统中一种进程通信的方式。 (4)运用Eclipse开发工具和java语言实现该应用程序。

java大作业设计报告-JAVA聊天室

JAVA程序设计 多人聊天室 : ? #

1设计目的 Java 编程语言是个简单、面向对象、分布式、解释性、健壮、安全与系统无关、可移植、高性能、多线程和静态的语言。本次课程设计旨在应用JAVA编程语言中的网络通信,多线程,数据库编程,图形界面编程等技术实现一个基本的多人在线网络聊天室。并以此巩固JAVA基础知识,体会面向对象的设计方法。 2》 3平台要求 3.1使用: 搭载JAVA运行环境的平台即可。 3.2开发环境: Windows10 64bit JDK Eclipse ¥ Window Builder 4需求分析 管理员:启动服务器,关闭服务器,强制用户退出,聊天房间增添改查。 用户:GUI,注册,登陆,聊天等。 用例图:

System User Administrator Server Client Database House delete or add User logout Login and logout Chat Enter and leaveHouse User Info get and set Sign Up Start up server 5 概要设计 5.1 服务器设计 ? 将客户端的请求抽象化,每种请求服务器都会产生一个特定的类的对象去处理它。服务器负责接受客户端请求,根据请求内容完成指定工作。为提高效率,采用多线程结合线程池设计技术,对于每个请求在线程池内得到一个线程去处理请求。如图3-1所示。 5.2 客户端设计 聊天室中一个事物的过程基本流程是:用户产生动作,客户端发送消息,服务器接收并处理,服务器返回处理结果,GUI 根据结果进行显示的更新。客户端只在GUI 中采用多线程设计。而对服务器回应的接受都是单线程的因为只有一个服务器为自己服务,且在接收数据过程中连接是不可断开的。客户端的设计如图3-2所示。一次事物流程中的步骤编号在图中给出。

JAVA实训评测报告--聊天室

《Java实训》设计报告 电子信息项目学院 专业:软件技术 班级:1班 实训:聊天室

系统总体设计 1、设计思路 聊天系统的设计跟普通网站设计有着许多不同的地方,普通网站设计所考虑的因素,例如,普通网站需要对布局进入大量美化以及动画设计等等,而聊天室只要提供满足访客双方直接实时聊天即可。因此,在设计聊天系统的过程中,必须要考虑好以下几个设计要点: 在Internet上的聊天程序一般都是以服务器提供服务端连接响应,使用者通过客户端程序登录到服务器,就可以与登录在同一服务器上的用户交谈,这是一个面向连接的通信过程。因此,程序要在TCP/IP环境下,实现服务器端和客户端两部分程序。 1.首先通过继承JFrame类构造服务器界面。 2.设计客户端程序使其能够完成正常的通信功能。 3.设计监听程序,使其显示登录的ip地址端口号,以及用户昵称,通过侦听按钮可以调用客户端程序,实现聊天功能。 2、各个模块详细的功能描述。 1、服务器端功能描述: 启动服务器端。 2、客户端功能描述: 启动客户端; 显示登录昵称: 显示聊天记录: 发送信息; 退出聊天室。 系统详细设计 1、界面设计 主要由类ChatRoom来实现,界面实际总体如下:输入昵称的文本框,输入IP地址的文本框以及输入端口的文本框;连接的按钮;退出按钮;接受消息的文本域;发送消息文本框;发送按钮。项目设计

在设计聊天室时,编写3个Java源文件:Client.java、Frame1.java、ServerThread.java; 分别放在两个包中,一个是client,放Client.java、Frame1.java;一个是server,放ServerThread.java;聊天室除了上述Java源文件所给出的类外,还需要Java系统提供的一些重要类,如JButton,JTextField等。 下面是Java源文件的总体设计。 Client<主类)客户端 Client类负责创建聊天室客户端的主窗口,该类含有main方法,计算器从该类开始执行。 ServerThread<主类)服务器 ServerThread类负责创建聊天室服务器的主窗口,该类含有main方法,计算器从该类开始执行。 二详细代码设计 聊天室程序设计详细代码如下: 客户端代码: package client。 import javax.swing.UIManager。 publicclass Client { public Client(>{ Frame1 frame=new Frame1(>。 frame.setVisible(true>。 frame.validate(>。 } publicstaticvoid main(String[] args>{ try{ UIManager.setLookAndFeel(UIManager.getSystemLookAndFeelClassName(>>。 }catch(Exception e>{ e.printStackTrace(>。 } new Client(>。 } } package client。 import java.awt.*。 import java.awt.event.*。 import javax.swing.*。 import https://www.360docs.net/doc/5512485085.html,.*。

java大作业设计报告-JAVA聊天室

JAVA程序设计多人聊天室

1设计目的 Java 编程语言是个简单、面向对象、分布式、解释性、健壮、安全与系统无关、可移植、高性能、多线程和静态的语言。本次课程设计旨在应用JAVA编程语言中的网络通信,多线程,数据库编程,图形界面编程等技术实现一个基本的多人在线网络聊天室。并以此巩固JAVA基础知识,体会面向对象的设计方法。 2平台要求 2.1使用: 搭载JAVA运行环境的平台即可。 2.2开发环境: Windows10 64bit JDK Eclipse Window Builder 3需求分析 管理员:启动服务器,关闭服务器,强制用户退出,聊天房间增添改查。 用户:GUI,注册,登陆,聊天等。 用例图:

System User Administrator Server Client Database House delete or add User logout Login and logout Chat Enter and leaveHouse User Info get and set Sign Up Start up server 4 概要设计 4.1 服务器设计 将客户端的请求抽象化,每种请求服务器都会产生一个特定的类的对象去处理它。服务器负责接受客户端请求,根据请求内容完成指定工作。为提高效率,采用多线程结合线程池设计技术,对于每个请求在线程池内得到一个线程去处理请求。如图3-1所示。 4.2 客户端设计 聊天室中一个事物的过程基本流程是:用户产生动作,客户端发送消息,服务器接收并处理,服务器返回处理结果,GUI 根据结果进行显示的更新。客户端

java局域聊天室实践总结

河北科技师范学院 JA V A程序设计课程设计 个人实习总结 实习类型课程设计 实习单位 指导教师 所在院(系)信息技术系 班级 姓名 学号_

一、实习时间和地点 时间:2015.3.17-2015.4.14 地点:F310、F311 二、实习的内容 我所开发的系统是:局域网聊天系统。系统功能简要说明如下: 该程序实现局域网内的聊天功能,包括服务器端程序和客户端程序两部分。1、服务器:负责处理各个客户端的信息,并负责将信息进行转发。①服务器主要负责响应客户端的的各种信息,包括链接服务器,用户信息发送,各个客户端的信息相互转发。②服务器的实现有Server类,Server类主要是进行初始化的工作2、客户端:用户使用界面,负责接受信息以及与服务器进行通信。①客户端负责为用户提供聊天界面,将信息发送至服务器,接受服务器的反馈信息等一系列的工作。②客户端的实现有Client类,Client类负责与服务器,其它客户端进行通信。 1.连接:点击“连接”按钮之后将信息发送到服务器端,服务器端创建相应的连接,并将更新后的用户列表发送给所有用户。 2.发送:根据发送者、发送对象、发送的话创建一个字段发送到服务器端。 3.清空:清空客户端接收信息聊天对话框。 4.私聊TA:选择在线主机ip,根据ip地址发送一个私密聊天请求到服务器,服务器选择相

应的地址进行信息发送。本程序可以有多个用户,只需在一台服务器上运行服务端程序,所有的用户连接上了之后就可以正常通信。 人们日常生活中越来越多地使用聊天室这项应用来为自己的工作和学习服务。一个操作简单,界面友好、运行稳定的聊天室对于小型局域网的用户可以起到很好的交流作用。所谓聊天室就是一个可以让许多用户同时互相通信的网上园地,个人用户可以通过聊天室将自己融入整个主流社会中。因此我们这个聊天室选择了简洁的界面搭建。因为之前学过JFrame类的使用,所以界面搭建部分代码如下: public class TCPClient extends JFrame { public static String olip; private static final long serialVersionUID = 1L; JTextArea jtaContent = new JTextArea(); JTextField jtaInstant = new JTextField(); JButton jbSend = new JButton("发送"); JButton jbConnect = new JButton("连接"); JButton jbClear = new JButton("清空"); JLabel jlTip=new JLabel("在线主机"); JButton jbPChat=new JButton("私聊TA"); JPanel jpBtns = new JPanel(); JPanel jpContact=new JPanel(); public void launchFrame() { jtaContent.setEditable(false); jpBtns.setLayout(new GridLayout(1, 3, 5, 5)); jpBtns.add(jbConnect); jpBtns.add(jbSend); jpBtns.add(jbClear); jpBtns.setBounds(0, 375, 350, 30); JScrollPane jspText=new JScrollPane(jtaInstant); jspText.setBounds(0, 310, 350, 65); JScrollPane jspContactOL=new JScrollPane(jcbContact); JScrollPane jspContent=new JScrollPane(jtaContent); jspContent.setBounds(0, 0, 350, 300); jpContact.setLayout(new GridLayout(5, 5, 1, 3)); jpContact.add(jlTip); jpContact.add(jspContactOL); jpContact.add(jbPChat); jpContact.setBounds(350, 0, 135, 220);

聊天室课程设计报告

在线聊天系统 指导老师:xx 学号:xxxxxx 姓名:xx 日期:2014.5.21

目录 第一章、绪论 (2) 1.1选题的背景 (3) 1.2 选题的目的和意义 (3) 1.3 可行性分析 (3) 第二章、需求分析 (3) 2.1系统名称 (4) 2.2任务概述 (4) 2.3设计目的 (4) 2.4系统功能 (4) 2.5详细功能 (4) 第三章、总体设计 (4) 3.1 系统的名称和目标 (5) 第四章、界面设计 (5) 第五章、主要源代码 (7) 5.1 index (7) 5.2 index2 (9) 5.3 main (11) 第六章、设计心得 (18) 第一章、绪论

1.1选题的背景 繁忙的工作使人们没有时间去跟远方的亲戚朋友相聚,昂贵的电话费使我们不能聊的尽兴,因此网络聊天诞生了,并且成为了时下极为流行的一种沟通方式,特别是在现代高新的技术推动下,在线聊天呈现出良好的势头和广阔的前景。人们只需要有一台电脑,连上网就可以聊天了。在聊天室里,你可以尽情的跟朋友聊天,共同讨论问题,不用担心会花很多钱,而且还可以用各种表情来表达你的喜怒哀乐,还可以跟朋友一起玩游戏,和朋友一起分享你喜欢的歌。而随着软件开发在中国的快速崛起,使得越来越多的年轻有志向为软件事业奉献人加入到软件开发这个大家庭来,而当前最为快速的web 开发语言java 有着其天生的优越性。 基于以上这些优点,使用frame 框架加JSP 设计出一个高效的网上聊天室,并作为毕业设计研究课题具有非常重要的研究价值。 1.2选题的目的和意义 这次我所设计的课题正是互联网与社会生活之间的紧密关系的体现,现今的社会,人们已经离不开了网络,网络已经成为人与人之间交流的一种形式,他能够把事情的复杂化转为简单化。伴随着互联网的飞速发展,对作为人们交流的研究和设计变得越来越重要。同时人们更亲睐可以实时进行沟通的方式,于是在线聊天室应运而生。本程序的主要模块有四个:用户注册模块,管理员管理模块,主要的聊天模块和收发信息模块。 1.3可行性分析 可行性分析(Feasibility Analysis)也称为可行性研究,是在系统调查的基础上,针对新系统的开发是否具备必要性和可能性,对新系统的开发从技术、经济、社会的方面进行分析和研究,以避免投资失误,保证新系统的开发成功。可行性研究的目的就是用最小的代价在尽可能短的时间内确定问题是否能够解决。该系统的可行性分析包括以下几个方面的内容。 第二章、需求分析

相关文档
最新文档