JAVA聊天室实验报告

上传人:熏** 文档编号:106134781 上传时间:2022-06-13 格式:DOC 页数:14 大小:294KB
收藏 版权申诉 举报 下载
JAVA聊天室实验报告_第1页
第1页 / 共14页
JAVA聊天室实验报告_第2页
第2页 / 共14页
JAVA聊天室实验报告_第3页
第3页 / 共14页
资源描述:

《JAVA聊天室实验报告》由会员分享,可在线阅读,更多相关《JAVA聊天室实验报告(14页珍藏版)》请在装配图网上搜索。

1、JAVA聊天室实验报告姓名:马琳越班级:131114学号:13111368日期:2014年4月23日目 录目 录2JAVA程序课程设计任务书3摘要4第1章 引言5第2章 聊天室系统的设计7第3章 界面设计11第4章 总结14Java聊天室的设计任务书1.主要内容 用JAVA实现基于C/S模式的聊天室系统。聊天室分为服务器端和客户端部分,服务器端程序主要负责侦听客户端发来的信息,客户端需要登陆到服务器端才可以实现正常的聊天功能。2.具体要求A服务器端主要功能(1).在特定端口上进行侦听,等待客户端连接。(2).用户可以配置服务器端的侦听端口,默认端口为8888。(3).向已经连接到服务器端的用户

2、发送系统消息。B. 客户端主要功能(1).连接到已经开启聊天服务的服务器端。(2).用户可以配置要连接的服务器端的IP地址和端口号。(3).用户可以配置连接后显示的用户名。(4).用户可以向所有人或某一个人发送消息。3.主要参考文献及运用工具(1)Bruce Eckel 著 Thinking in Java , 李刚 著 疯狂Java讲义 (2)使用技术:Java 使用开发工具:Eclipse 摘 要在网络越来越发达的今天,人们对网络的依赖越来越多,越来越离不开网络,由此而产生的聊天工具越来越多,例如,国外的ICQ、国内腾讯公司开发的OICQ。基于Java网络编程的强大功能,本次大作业要求使用

3、Java编写一个聊天系统。 一般来说,聊天工具大多数由客户端程序和服务器程序外加服务器端用于存放客户数据的数据库组成,但是,由于自己数据库知识的部分遗忘,本程序未连接数据库,采用客户机/服务器架构模式,通过Java提供的Soket类来连接客户机和服务器并使客户机和服务器之间相互通信。 本系统建立在JAVA平台上,系统的设计使用了面向对象技术和面向对象的设计原则。系统采用C/S结构,客户端与客户端以及客户端与服务器端之间通过Socket传送消息。使用JAVA语言编写,开发工具采用Eclipse。服务器端设计与实现过程中,采用了多线程技术,可以在单个程序当中同时运行多个不同的线程,执行不同的任务。

4、大大增强了程序对服务器资源的利用。聊天系统完成后将可进行多人对多人的聊天,对好友进行添加、删除,对新用户的注册,发送消息、接受消息等等功能。第1章 引言1.1 背景在网络越来越发达的今天,人们对网络的依赖越来越多,越来越离不开网络,由此而产生的聊天工具越来越多,类似QQ,网络聊天时一类的聊天系统的发展日新月异,这些软件唯一的不足就是必须要联网或者下载到它们的服务端,要不然是没法脱离Intenet使用的。此次大作业既是利用网络编程写一个聊天室,以期通过制作该程序能更好的学习网络软件编程知识,此聊天室为能在一个没有连接到Intenet的局域网使用聊天工具。网络编程的目的就是指直接或间接地通过网络协

5、议与其他计算机进行通讯。网编程中有两个主要的问题,一个是如何准确的定位网络上一台或多台主机,另一个就是找到主机后如何可靠高效的进行数据传输。在TCP/IP协议中IP层主要负责网络主机的定位,数据传输的路由,由IP地址可以唯一地确定Internet上的一台主机。而TCP层则提供面向应用的可靠的或非可靠的数据传输机制,这是网络编程的主要对象,一般不需要关心IP层是如何处理数据的。目前较为流行的网络编程模型是客户机/服务器(C/S)结构。即通信双方一方作为服务器等待客户提出请求并予以响应。客户则在需要服务时向服务器提出申请。服务器一般作为守护进程始终运行,监听网络端口,一旦有客户请求,就会启动一个服

6、务进程来响应该客户,同时自己继续监听服务端口,使后来的客户也能及时得到服务。1.2 课程设计要求利用套接字socket()设计一个聊天程序,该程序基于C/S模式,运行服务程序后,服务器创建成功,然后使服务器对某一个设定的端口处于监听状态,当有客户端请求建立连接时,服务器就可接受请求,建立连接!这样服务器和客户端就可相互发送消息,实现聊天功能!1.3 项目功能特点1基本功能实现服务器监听,客户端连接,可进行多人会话的C/S聊天室。2服务器特点(1).在特定端口上进行侦听,等待客户端连接。(2).用户可以配置服务器端的侦听端口,默认端口为8888。(3).向已经连接到服务器端的用户发送系统消息。3

7、. 客户端特点(1).连接到已经开启聊天服务的服务器端。(2).用户可以配置要连接的服务器端的IP地址和端口号。(3).用户可以配置连接后显示的用户名。(4).用户可以向所有人或某一个人发送消息。1.4 功能实现(1). 注册功能(2). 登陆验证功能功能(3). 客户通过服务器转发,实现聊天功能.(4). 实现公聊功能。(5). 易用,美观的图形界面,实现系统托盘.第2章 聊天室系统的设计2.1 系统需求分析聊天室的设计目标:通过做巩固所学Java语言基本知识,增进Java语言编辑基本功,掌握JDK、Eclipse等开发工具的运用,拓宽常用类库的应用,用JAVA实现基于C/S模式的聊天室系统

8、。需要实现以下一些基本功能:A 消息发送:用户可以发送消息给聊天室里所有的用户。B 消息接受:用户可以接收到其他用户发送给他的消息。C 聊天室管理功能:聊天室管理员可以启动或者关闭聊天室服务。2.2 系统开发及运行环境硬件平台:q CPU:Pentium 2.8GHz以上。q 内存:256MB以上。软件平台:q 操作系统:Windows XP。q 运行环境:JDK Version1.7 Eclipse 2.3 系统主要功能要求聊天室分为服务器端和客户端两部分,服务器端程序主要负责侦听客户端发来的信息,客户端需要登陆到服务器端才可以实现正常的聊天功能。本系统主要实现如下功能:服务器:q 在特定端

9、口上进行侦听,等待客户端连接。q 用户可以配置服务器端的侦听端口,默认端口为8888。q 向已经连接到服务器端的用户发送系统消息。q 一台主机只能启动一个服务器。客户端:q 连接到已经开启聊天服务的服务器端。q 用户可以配置要连接的服务器端的IP地址和端口号。q 用户可以配置连接后显示的用户名。q 当服务器端开启后,用户可以随时登录和注册。q 用户可以向所有人发送消息。2.4 基本设计概念和处理流程本系统运行用JAVA开发,采用CS结构,系统分为客服端和服务端两大模块,使用Socket类建立套接字实现客服端和服务端得通讯。(1)系统主体的处理流程:客服端服务端发送请求返回应答(2)总体结构网络

10、聊天室服务端客服端(3)功能分配客户端和服务器模块功能树图客户端:客服端显示在线用户接收并显示消息服务端:服务端转发用户消息处理用户注册,登录申请服务器管理2.4 设计原理通信方式1)服务器建立一个TCP监听端口,等待客户端连接。 2) 客户连接服务器,服务器生成一个Socket服务该用户。3)服务器接收来自客户端的聊天信息,然后遍历转发给所有在线用户。2.5 运行方式 具体软件的运行模块组合为客户端窗口的运行环境,服务器无窗口环境,服务器与客户端在运行过程中传输字符,交换信息,处理数据。第3章 界面设计(1)注册登陆界面(2)注册成功界面图(3)重复注册界面图(3)登陆界面图登陆成功既跳出兑

11、话框,服务器端将显示“登陆成功”以及“a client connected”(4)客户端界面图(5)多人群聊界面图 。 第4章 总结1.实验中遇到的问题以及解决 整个程序的框架写出来后,准备启动多个客户端才发现此时不能同时启动多个客户端,后来阅读到课本“多线程”那一章,用多线程解决了此问题。后来,在客户端以及服务器端的交互过程中,不停的出现着各种异常以及问题,比方说IOException,EOFException,Socket Closed,在不断的调试程序以及在网上找寻的视频学习的过程中才解决这些问题。后来在写登陆注册时,也会不断的出现问题,不是可以重复注册就是注册了点登陆却不能响应,诸如此

12、类的很多问题,自己调试了许久也并没有解决问题,最后找同学帮忙修改了此段程序。2.实验总结 这次的大作业应该是我接触到的第一个项目,项目虽小,却能暴露出很多问题。项目伊始,我在网上找了马士兵的java讲课视频来看,为自己做项目找到了一个大体的思路,但是当自己着手做的时候,又会暴露很多问题,其中不乏有基础知识没有掌握牢固的部分,所以说,此次的java大作业也是一个巩固所学知识的很好的机会。而且,通过这次大作业,我认识到实战一个项目所得到的远比整天抱着书本看知识更能长知识,这个项目使我在运用GUI、线程、java网络和流等的方面更加熟练,对于细小的知识点也更加巩固。而且,通过这个项目,我更深深的体会到:好的程序不是写出来的,而是改出来的。此次编程,自己事先罗列了一个提纲:该实现什么功能,要实现此功能首先该实现什么。就这样一步步剖析到最底层一个很简单的东西,而自己的编码就从这个入手,然后一步步扩充,并不断调试,使程序更加健壮。 通过这次作业我已经认识到了实战的重要性,写这份作业的这段时间是忙碌并且充实的,之后,我也会每天都写一些代码来锻炼自己。本次实验运用了Eclipse,它确实很智能,很方便,但平时的训练中,我依旧会使用记事本来编码,这样,我才回更扎实的掌握java,我相信一段时间以后,自己的积淀已经够深,自己也有资格去借助Eclipse去完成更多的项目。14

展开阅读全文
温馨提示:
1: 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
2: 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
3.本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
5. 装配图网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
关于我们 - 网站声明 - 网站地图 - 资源地图 - 友情链接 - 网站客服 - 联系我们

copyright@ 2023-2025  zhuangpeitu.com 装配图网版权所有   联系电话:18123376007

备案号:ICP2024067431-1 川公网安备51140202000466号


本站为文档C2C交易模式,即用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。装配图网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知装配图网,我们立即给予删除!