没有合适的资源?快使用搜索试试~ 我知道了~
19216228黎远波课程设计报告1
需积分: 0 0 下载量 13 浏览量
2022-08-08
22:41:47
上传
评论
收藏 1.07MB DOCX 举报
温馨提示
试读
31页
摘要:为了方便多人聊天沟通,承载多用户即时聊天功能,QQ聊天室为大家提供了一种方便的网上交流模式,使得在线多用户可同时多人聊天,分享信息,促进交流沟通。本系统基
资源推荐
资源详情
资源评论
网络工程课程设计
题目:
基于 UDP 协议的 QQ 聊天室系统
班级:
计科 162
学号:
19216228
专业:
计算机科学与技术
姓名:
. 黎远波
学院:
信息科学与技术
指导教师:
叶锡君
2019 年 10 月 28 日
南京农业大学教务处制
目录
1 目的及意义 ..................................................................................................................................3
2 设计任务及要求 ..........................................................................................................................4
3 系统设计 ......................................................................................................................................5
3.1 功能设计 ...........................................................................................................................5
3.2 通用数据结构及方法设计.................................................................................................6
3.2.1 消息类 ....................................................................................................................6
3.2.2 用户类 ....................................................................................................................7
3.2.3 文件类 ....................................................................................................................7
3.2.4 消息序列化和反序列化.........................................................................................7
3.3 用户注册登录退出 ............................................................................................................8
3.3.1 用户注册 ................................................................................................................8
3.3.2 用户登录 ................................................................................................................9
3.3.3 用户退出 ..............................................................................................................10
3.4 会话消息功能 .................................................................................................................10
3.4.1 群聊消息 ..............................................................................................................10
3.4.2 私聊消息 ..............................................................................................................11
3.5 文件操作 ..........................................................................................................................12
3.5.1 文件上传 ..............................................................................................................12
3.5.2 文件下载 ..............................................................................................................12
3.6 服务器端线程设计 .........................................................................................................13
3.7 客户端线程设计 .............................................................................................................15
4 系统测试 ....................................................................................................................................16
4.1 用户注册登录 .................................................................................................................16
4.1.1 用户注册 ..............................................................................................................16
4.1.2 用户登录 ..............................................................................................................17
4.2 用户聊天 .........................................................................................................................19
4.2.1 聊天室群聊 ..........................................................................................................19
4.2.2 私聊消息 ..............................................................................................................19
4.3 文件操作 .........................................................................................................................20
4.3.1 上传文件 ..............................................................................................................20
4.3.2 下载文件 ..............................................................................................................21
4.4 用户退出 .........................................................................................................................23
5 实验总结 ....................................................................................................................................24
基于 UDP 协议的 QQ 聊天室系统
计算机专业学生 黎远波
指导教师 叶锡君
摘要:为了方便多人聊天沟通,承载多用户即时聊天功能,QQ 聊天室为大家提供了一
种方便的网上交流模式,使得在线多用户可同时多人聊天,分享信息,促进交流沟通。本系
统基于 UDP 协议,利用客户端及服务器端的消息传送回应转发,实现多人聊天室。用户可
实现注册、登录、退出客户端,并且在登录和退出时均伴有音效;用户可在聊天室内自由发
言进行群聊,也可点击用户列表与某一用户私聊;同时,用户还可以在聊天室内上传文件,
其他用户可根据需要点击文件列表下载文件。本系统以促进多人沟通为目的,以 UDP 协议
为依托,通过 Java 网络编程技术,实现客户端与服务器端、客户端与客户端之间的联系与
交流。
关键字:QQ 聊天室;Socket 网络编程;UDP 协议;客户端与服务器;文件上传与下载
1 目的及意义
计算机技术的快速发展,特别是计算机网络的发展,正在越来越深刻的改变
人们生活的各方各面。各种在线服务系统,更是深刻的影响了人们的联系和交流
方式,使得人们可以在千里之遥随时通讯。过去的种种陈旧的联系方式,已经不
能满足现代生活的需要。其中网上聊天系统为人们进行及时的交流联系提供了一
个便捷的平台,作为一种方便人们之间联系的实用系统得到了广泛的传播和大量
的使用。通过完善的系统管理和贴合使用者需求的系统设计,可以实现增进人与
人之间交流和联系的目的,也可以很大程度上推动社会其他领域的发展。
UDP(User Datagram Protocol,用户数据报协议)属于传输层协议。它是一个
面向非连接的协议,有很多优良的特性。UDP 协议传输数据时源端和终端不建
立连接,而是直接把客户端发的数据报发给服务器端,因此不需要维护复杂地连
接状态,这使它适用于一次传输数据量很少、对可靠性要求不高的或对实时性要
求高的应用场景。UDP 协议网络通信框架如图 1 所示。UDP 协议地常见服务有
DNS、SNMP、QQ 等
[1]
。
Socket()
Sendto()
Recvfrom()
Close()
Socket()
Bind()
Sendto()
Recvfrom()
data
data
.
.
.
.
.
.
客户端 服务器端
图 1 UDP 通信框架
Socket,也称作套接字,是一个通信链的句柄,用于描述 IP 地址和端口,
可以用来实现不同虚拟机或不同计算机之间的通信,应用程序通常通过 Socket
向网络发出请求或者应答网络请求
[2]
。Socket 结构会指明套接字的连接状态、可
对套接字进行的操作以及套接字的通信类型等信息。一个套接字的连接状态可能
有几种情况:套接字是空闲的,还没进行相应的端口和地址绑定;还没连接;正
在连接中;已经连接;正在解除连接
[3]
。实际应用中,在 Internet 上的主机一般
运行了多个服务软件,同时提供几种服务。每种服务都打开一个 Socket,并绑定
到一个端口上,不同的端口对应于不同的服务。Socket 是连接运行在网络上的两
个程序间的双向通信的端点,网络通讯其实指的就是 Socket 间的通讯,通讯的
两端都有 Socket,数据在两个 Socket 之间通过 IO 来进行传输
[4]
。Socket 网络通
信模式如图 2 所示。
Server
Socket
Client
Socket
协议
图 2 Socket 网络通信模式
服务器程序将一个套接字绑定到一个特定的端口,并通过此套接字等待和监
听客户的连接请求。客户程序根据服务器程序所在的主机和端口号发出连接请求。
如果一切正常,服务器接受连接请求。并获得一个新的绑定到不同端口地址的套
接字。客户和服务器通过读、写套接字进行通讯。
Java 语言是一种面向对象的可以编写跨平台应用软件的高级程序设计语言。
它为网络编程提供了强大的网络编程接口。针对网络通信的不同层次,Java 有四
大类网络功能:InetAddress、URL、Socket、Datagram
[5]
。Java.net 包中提供 Socket
类,隐藏了 Socket 的实现细节,不需要开发者编写接口程序,而可以快速的实
现网络的通信
[6]
。
在 Java 中可以使用两种 Socket 方式,即流式 Socket 和数据报 Socket。流式
Socket 提供了双向的、有序的、无重复的数据流服务,采用的是 TCP 服务。数
据报 Socket 支持双向的数据流,但不保证是可靠传输,使用的是 UDP 服务
[7]
。
为了提高数据传输效率和网络利用率,本文采用的是数据报 Socket 方式。
此次课程设计一方面可以帮助我们进一步熟悉掌握网络通信技术,客户端与
服务器端的交互模式等方面的知识,巩固自身所学;另一方面,可以通过实现聊
天室系统,提高小组成员的系统设计能力以及 Java 编程能力,为之后进一步应
用打下坚实的基础。
2 设计任务及要求
本次课程设计拟完成一个基于 UDP 协议的 QQ 聊天室系统,通过 QQ 客户
端及服务器端的消息传送回应转发,实现多人聊天室系统。
用户可以通过聊天室系统注册、登录客户端,用户上线时会伴有上线音效,
其他用户会收到该用户上线提示音,也会将上线用户加入在线用户列表。用户登
录客户端之后,可在聊天室内进行自由发言,通过服务器的消息转发,实现多用
户聊天功能。用户也可以通过点击在线用户列表与某一用户进行私聊,被私聊用
户会收到其他用户的私聊消息,可以通过点击用户列表的该用户进行私聊消息回
应。同时,用户可以在聊天室聊天过程中选择文件进行上传,其他用户可以在文
件列表中点击选择进行文件下载。当用户聊天结束退出客户端时,其他用户也会
收到该用户下线提示音,并将该用户在在线用户内删除。
本次课程设计完成的内容有:用户注册、登录客户端功能,用户群聊功能,
用户私聊功能,用户上传及下载文件功能,用户退出客户端功能,用户上线下线
提示音等功能。
小组分工:
(1)宋玉红:聊天界面、群聊与私聊功能实现、文件上传与下载操作实现、
服务器与客户端线程实现、报告撰写;
剩余30页未读,继续阅读
资源评论
小明斗
- 粉丝: 28
- 资源: 329
上传资源 快速赚钱
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
安全验证
文档复制为VIP权益,开通VIP直接复制
信息提交成功