




已阅读5页,还剩9页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
JAVA 聊天室实验报告聊天室实验报告 姓名姓名 马琳越 班级班级 131114 学号学号 13111368 日期日期 2014 年 4 月 23 日 2 目目 录录 目目 录录 2 JAVA 程序课程设计任务书程序课程设计任务书 3 摘要摘要 4 第第 1 章章 引言引言 5 第第 2 章章 聊天室系统聊天室系统的设计的设计 7 第第 3 章章 界面设计界面设计 11 第第 4 章章 总结总结 14 3 Java 聊天室的设计任务书聊天室的设计任务书 1 主要内容主要内容 用 JAVA 实现基于 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 4 摘摘 要要 在网络越来越发达的今天 人们对网络的依赖越来越多 越来越离不开网 络 由此而产生的聊天工具越来越多 例如 国外的 ICQ 国内腾讯公司开发 的 OICQ 基于 Java 网络编程的强大功能 本次大作业要求使用 Java 编写一个 聊天系统 一般来说 聊天工具大多数由客户端程序和服务器程序外加服务器端用于 存放客户数据的数据库组成 但是 由于自己数据库知识的部分遗忘 本程序 未连接数据库 采用客户机 服务器架构模式 通过 Java 提供的 Soket 类来连 接客户机和服务器并使客户机和服务器之间相互通信 本系统建立在 JAVA 平台上 系统的设计使用了面向对象技术和面向对象的 设计原则 系统采用 C S 结构 客户端与客户端以及客户端与服务器端之间通 过 Socket 传送消息 使用 JAVA 语言编写 开发工具采用 Eclipse 服务器端 设计与实现过程中 采用了多线程技术 可以在单个程序当中同时运行多个不 同的线程 执行不同的任务 大大增强了程序对服务器资源的利用 聊天系统完成后将可进行多人对多人的聊天 对好友进行添加 删除 对 新用户的注册 发送消息 接受消息等等功能 5 第第 1 章章 引言引言 1 1 背景背景 在网络越来越发达的今天 人们对网络的依赖越来越多 越来越离不 开网络 由此而产生的聊天工具越来越多 类似 QQ 网络聊天时一类的聊天 系统的发展日新月异 这些软件唯一的不足就是必须要联网或者下载到它 们的服务端 要不然是没法脱离 Intenet 使用的 此次大作业既是利用网 络编程写一个聊天室 以期通过制作该程序能更好的学习网络软件编程知 识 此聊天室为能在一个没有连接到 Intenet 的局域网使用聊天工具 网络编程的目的就是指直接或间接地通过网络协议与其他计算机进行 通讯 网编程中有两个主要的问题 一个是如何准确的定位网络上一台或多 台主机 另一个就是找到主机后如何可靠高效的进行数据传输 在 TCP IP 协议中 IP 层主要负责网络主机的定位 数据传输的路由 由 IP 地址可以唯 一地确定 Internet 上的一台主机 而 TCP 层则提供面向应用的可靠的或非 可靠的数据传输机制 这是网络编程的主要对象 一般不需要关心 IP 层是 如何处理数据的 目前较为流行的网络编程模型是客户机 服务器 C S 结 构 即通信双方一方作为服务器等待客户提出请求并予以响应 客户则在需 要服务时向服务器提出申请 服务器一般作为守护进程始终运行 监听网络 端口 一旦有客户请求 就会启动一个服务进程来响应该客户 同时自己继 续监听服务端口 使后来的客户也能及时得到服务 1 2 课程设计课程设计要求要求 利用套接字 socket 设计一个聊天程序 该程序基于 C S 模式 运行服务程序后 服务器创建成功 然后使服务器对某一个设定的端口处 于监听状态 当有客户端请求建立连接时 服务器就可接受请求 建立连 接 这样服务器和客户端就可相互发送消息 实现聊天功能 6 1 3 项目功能特点项目功能特点 1 基本功能 实现服务器监听 客户端连接 可进行多人会话的 C S 聊天室 2 服务器特点 1 在特定端口上进行侦听 等待客户端连接 2 用户可以配置服务器端的侦听端口 默认端口为 8888 3 向已经连接到服务器端的用户发送系统消息 3 客户端特点 1 连接到已经开启聊天服务的服务器端 2 用户可以配置要连接的服务器端的 IP 地址和端口号 3 用户可以配置连接后显示的用户名 4 用户可以向所有人或某一个人发送消息 1 4 功能实现功能实现 1 注册功能 2 登陆验证功能功能 3 3 客户通过服务器转发 实现聊天功能 4 4 实现公聊功能 5 5 易用 美观的图形界面 实现系统托盘 7 第第 2 章章 聊天室系统的设计聊天室系统的设计 2 1 系统需求分析系统需求分析 聊天室的设计目标 通过做巩固所学 Java 语言基本知识 增进 Java 语言编辑基 本功 掌握 JDK Eclipse 等开发工具的运用 拓宽常用类库的应用 用 JAVA 实现基于 C S 模式的聊天室系统 需要实现以下一些基本功能 A 消息发送 用户可以发送消息给聊天室里所有的用户 B 消息接受 用户可以接收到其他用户发送给他的消息 C 聊天室管理功能 聊天室管理员可以启动或者关闭聊天室服务 2 2 系统开发及运行环境系统开发及运行环境 硬件平台 CPU Pentium 2 8GHz 以上 内存 256MB 以上 软件平台 操作系统 Windows XP 运行环境 JDK Version1 7 Eclipse 2 3 系统主要功能要求系统主要功能要求 聊天室分为服务器端和客户端两部分 服务器端程序主要负责侦听客户端 发来的信息 客户端需要登陆到服务器端才可以实现正常的聊天功能 本系统 主要实现如下功能 服务器 在特定端口上进行侦听 等待客户端连接 用户可以配置服务器端的侦听端口 默认端口为 8888 向已经连接到服务器端的用户发送系统消息 一台主机只能启动一个服务器 客户端 连接到已经开启聊天服务的服务器端 8 用户可以配置要连接的服务器端的 IP 地址和端口号 用户可以配置连接后显示的用户名 当服务器端开启后 用户可以随时登录和注册 用户可以向所有人发送消息 2 4 基本设计概念和处理流程基本设计概念和处理流程 本系统运行用本系统运行用 JAVA 开发 采用开发 采用 C S 结构 系统分为客服端和服务端两大模块 结构 系统分为客服端和服务端两大模块 使用使用 Socket 类建立套接字实现客服端和服务端得通讯 类建立套接字实现客服端和服务端得通讯 1 系统主体的处理流程 发送请求 返回应答 2 总体结构 客服端客服端服务端服务端 9 网络聊天室 服务端 客服端 3 功能分配 客户端和服务器模块功能树图 客户端 客服端客服端 显示在线用户显示在线用户 接收并显示消息接收并显示消息 服务端 10 服务端服务端 转发用户消息转发用户消息 处理用户注册 登录申处理用户注册 登录申 请请 服务器管理服务器管理 2 4 设计原理设计原理 通信方式通信方式 1 服务器建立一个 TCP 监听端口 等待客户端连接 2 客户连接服务器 服务器生成一个 Socket 服务该用户 3 服务器接收来自客户端的聊天信息 然后遍历转发给所有在线用户 2 5 运行方式运行方式 具体软件的运行模块组合为客户端窗口的运行环境 服务器无窗口环境 服务器与 客户端在运行过程中传输字符 交换信息 处理数据 11 第第 3 章章 界面设计界面设计 1 注册登陆界面 2 注册成功界面图 3 重复注册界面图 12 3 登陆界面图 登陆成功既跳出兑话框 服务器端将显示 登陆成功 以及 a client connected 4 客户端界面图 13 5 多人群聊界面图 14 第第 4 章章 总结总结 1 实验中遇到的问题以及解决实验中遇到的问题以及解决 整个程序的框架写出来后 准备启动多个客户端才发现此时不能同时启 动多个客户端 后来阅读到课本 多线程 那一章 用多线程解决了此问题 后来 在客户端以及服务器端的交互过程中 不停的出现着各种异常以及问题 比方说 IOException EOFException Socket Closed 在不断的调试程序以及在网上 找寻的视频学习的过程中才解决这些问题 后来在写登陆注册时 也会不断的 出现问题 不是可以重复注册就是注册了点登陆却不能响应 诸如此类的很多 问题 自己调试了许久也并没有解决问题 最后找同学帮忙修改了此段程序 2 实验总结实验总结 这次的大作业应该是我接触到的第一个项目 项目虽小 却能暴露出很 多问题 项目伊始 我在网上找了马士兵的 java 讲课视频来看 为自己做项目 找到了一个大体的思路 但是当自己着手做的时候 又会暴露很多问题 其中 不乏有基础知识没有掌握牢固的部分 所以说 此次的 java 大作业也是一个巩 固所学知识的很好的机会 而且 通过这次大作业 我认识到实战一个项目所 得到的远比整天抱着书本看知识更能长知识 这个项目使我在运用 GUI 线程 java 网络和流等的方面更加熟练 对于细小的知识点也更加巩固 而且 通过 这个项目 我更深深的体会到 好的程序不是写出来的 而是改出来的 此次 编程 自己事先罗列了一个提纲 该实现什么功能 要实现此功能首先该实现 什么 就这样一步步剖析到最底层一个
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2025年事业单位工勤技能-湖南-湖南放射技术员二级(技师)历年参考题库典型考点含答案解析
- 2025年事业单位工勤技能-湖南-湖南地图绘制员四级(中级工)历年参考题库含答案解析
- 2025年事业单位工勤技能-湖南-湖南下水道养护工四级(中级工)历年参考题库典型考点含答案解析
- 2025年事业单位工勤技能-湖北-湖北热处理工五级(初级工)历年参考题库典型考点含答案解析
- 2025年事业单位工勤技能-湖北-湖北家禽饲养员三级(高级工)历年参考题库典型考点含答案解析
- 2025-2030中国纳迪克酸酐行业运营格局及投资盈利预测报告
- 低碳城市规划与绿色建筑设计2025年创新案例分析
- 2025年事业单位工勤技能-河南-河南造林管护工二级(技师)历年参考题库典型考点含答案解析
- 2025年事业单位工勤技能-河南-河南园林绿化工三级(高级工)历年参考题库典型考点含答案解析
- 2025年事业单位工勤技能-河南-河南保安员二级(技师)历年参考题库典型考点含答案解析
- PICC常见并发症的预防及处理
- 葫芦岛打渔山 220kV 输变电工程环评报告
- 08SG213-1 钢烟囱(自立式30m-60m)(不清晰有水印)
- 社会团体单位会员登记表完整
- 派出所实习报告PPT模板下载
- GB/T 7757-2009硫化橡胶或热塑性橡胶压缩应力应变性能的测定
- 智能客服趋势发展白皮书:智能客服预见未来课件
- 2009-2022历年江苏省镇江市丹阳市事业单位考试《综合知识和能力素质(计算机类岗位)》真题含答案2022-2023上岸必备带详解版3
- 工业园区消防安全标准化
- 项目造价咨询计划表
- 人教版高中化学必修一离子方程式双线桥单线桥专项练习
评论
0/150
提交评论