没有合适的资源?快使用搜索试试~ 我知道了~
首页java课设实验报告(聊天程序+白板程序).docx
聊天程序: 1. 用Java图形用户界面编写聊天室服务器端和客户端, 支持多个客户端连接到一个服务器。每个客户端能够输入账号。 2. 可以实现群聊(聊天记录显示在所有客户端界面)。 3. 完成好友列表在各个客户端上显示。 4. 可以实现私人聊天,用户可以选择某个其他用户,单独发送信息。 5. 服务器能够群发系统消息,能够强行让某些用户下线 白板程序:1. 编写图形用户界面,教师为服务器端,学生为客户端,一个服务端可以接受多个客户端连接。 2. 要求完成教师白板的建立,实现教师在白板上画图,学生端能够实时刷新。 3. 教师可以传输文件给学生。 4. 学生可以向教师提问,问答内容所有学生都能看到。
资源详情
资源评论
资源推荐
信息科学与工程学院
Java 课程设计
实验报告
学生姓名
学 号
专业班级
指导教师
学 院 信息科学与工程学院
第 1 页 共 123 页
信息科学与工程学院
目录
3
、 聊天:
......................................................................................................................................10
..................................................................................................................................................................26
实验一:用 JavaSocket 编程开发聊天室
一、 需求分析
1.1 开发背景
在信息化社会的今天,网络飞速发展,人们对网络的依赖越来越多,越来越离不开网
络,由此而产生的聊天工具越来越多,类似 MSN、QQ,网络聊天时一类的聊天系统的发展
日新月异,因此产生了制作一个类似 QQ 的网络聊天工具的想法,且通过制作该程序还能
更好的学习网络软件编程知识。
网络编程的目的就是指直接或间接地通过网络协议与其他计算机进行通讯。网编程中有
两个主要的问题,一个是如何准确的定位网络上一台或多台主机,另一个就是找到主机后
如何可靠高效的进行数据传输。在 TCP/IP 协议中 IP 层主要负责网络主机的定位,数据传
输的路由,由 IP 地址可以唯一地确定 Internet 上的一台主机。而 TCP 层则提供面向应用
的可靠的或非可靠的数据传输机制,这是网络编程的主要对象,一般不需要关心 IP 层是如
何处理数据的。目前较为流行的网络编程模型是客户机/服务器(C/S)结构。即通信双方
一方作为服务器等待客户提出请求并予以响应。客户则在需要服务时向服务器提出申请。
服务器一般作为守护进程始终运行,监听网络端口,一旦有客户请求,就会启动一个服务
进程来响应该客户,同时自己继续监听服务端口,使后来的客户也得到响应的服务。
1.2 设计要求
实践基本要求:
第 2 页 共 123 页
信息科学与工程学院
1.了解实验目的及实验原理;
2.编写程序,并附上程序代码和结果图;
3.总结在编程过程中遇到的问题、解决办法和收获。
实践的内容或要求:
1. 用 Java 图形用户界面编写聊天室服务器端和客户端, 支持多个客户端连接到一个
服务器。每个客户端能够输入账号。
2. 可以实现群聊(聊天记录显示在所有客户端界面)。
3. 完成好友列表在各个客户端上显示。
4. 可以实现私人聊天,用户可以选择某个其他用户,单独发送信息。
5. 服务器能够群发系统消息,能够强行让某些用户下线。
6. 客户端的上线下线要求能够在其他客户端上面实时刷新。
实践类型或性质:开发性
1.3 设计目的
通过指导学生上机实践,对 JavaSocket 编程、Java 多线程、Java 图形用户界面进行
掌握。
1.4 功能实现
1. 用 Java 图形用户界面编写聊天室服务器端和客户端, 支持多个客户端连接到一个
服务器。每个客户端能够输入账号。
2. 可以实现群聊(聊天记录显示在所有客户端界面)。
3. 完成好友列表在各个客户端上显示。
4. 可以实现私人聊天,用户可以选择某个其他用户,单独发送信息。
5. 服务器能够群发系统消息,能够强行让某些用户下线。
6. 客户端的上线下线要求能够在其他客户端上面实时刷新。
二、 总体设计
2.1 设计思想
套接字对象在网络编程中扮演者重要的角色,可以用套接字技术编写一个聊天室,服务
器为每个客户启动一个线程。在该线程中通过套接字和客户交流信息,当客户向服务器发
送一条聊天信息“大家好”时,服务器要让所有的这些线程中的输入流写入信息大家好,这
样所有的客户的套接字的输入流就都读取到了这一条信息。如果把信息“你好”发送给特定
用户,服务器就让特定线程中的输出流写入信息“你好”,那么只有特定客户的套机字的输
入流可以读取到这条信息。
在聊天室中需要对用户上线下线的状态进行修改,进而统计在线人数、查找某用户等。
因而需要用到 java 链表来实现。由于 Java 语言不像 c 或 c++一样可以利用线性表的链式
存储结构,用节点和指针来表示,在 Java 中是没有指针的,但是可以通过使用对象的引用
来实现链表。链表的结点个数称为链表的长度。因此在 Java 中可以定义两个类来实现链表
的操作,分别为节点类和链表类。在本设计中对用户的存储就是利用链表来实现的。
第 3 页 共 123 页
客户端 服务端
发送请求
处理请求
信息科学与工程学院
2.2 基本设计概念和处理流程
本系统运行用 JAVA 开发,采用 C\S 结构,系统分为客服端和服务端两大模块,使用
Socket 类建立套接字实现客服端和服务端得通讯。
处理流程
服务端 客户端
一个 ServerSocket 对象和一个 Socket 对象 一个 Socketd 对象
第 4 页 共 123 页
ServerSocket(port) 创建 ServerSocket 对象提供 TCP 连接服务
Accept()
在指定端口等待客户端的连接请求
连接成功,获得一个已连接的 socket 对象
InputStream
读取 Socket 对象的输入流
OutputStream
写入 Socket 对象的输出流
InputStream
读取 Socket 对象的输入流
OutputStream
写入 Socket 对象的输出流
Socket(host,port) 创建 Socket 对象,向指定主机端口发出连接请求
Socket.close()
关闭 TCP 连接
ServerSocket.close()
停止提供 TCP 连接服务
Socket.close()
关闭 TCP 连接
建立 Socket 连接
申请连接
通过流传送数据
信息科学与工程学院
TCP Socket 通信流程
剩余63页未读,继续阅读
QwQ一叶
- 粉丝: 30
- 资源: 10
上传资源 快速赚钱
- 我的内容管理 收起
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
会员权益专享
最新资源
- ExcelVBA中的Range和Cells用法说明.pdf
- 基于单片机的电梯控制模型设计.doc
- 主成分分析和因子分析.pptx
- 共享笔记服务系统论文.doc
- 基于数据治理体系的数据中台实践分享.pptx
- 变压器的铭牌和额定值.pptx
- 计算机网络课程设计报告--用winsock设计Ping应用程序.doc
- 高电压技术课件:第03章 液体和固体介质的电气特性.pdf
- Oracle商务智能精华介绍.pptx
- 基于单片机的输液滴速控制系统设计文档.doc
- dw考试题 5套.pdf
- 学生档案管理系统详细设计说明书.doc
- 操作系统PPT课件.pptx
- 智慧路边停车管理系统方案.pptx
- 【企业内控系列】企业内部控制之人力资源管理控制(17页).doc
- 温度传感器分类与特点.pptx
资源上传下载、课程学习等过程中有任何疑问或建议,欢迎提出宝贵意见哦~我们会及时处理!
点击此处反馈
安全验证
文档复制为VIP权益,开通VIP直接复制
信息提交成功
评论0