2022年基于UDP网络通信系统的服务端程序设计课程设计报告.docx
《2022年基于UDP网络通信系统的服务端程序设计课程设计报告.docx》由会员分享,可在线阅读,更多相关《2022年基于UDP网络通信系统的服务端程序设计课程设计报告.docx(40页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、精品学习资源长沙理工高校运算机与通信工程学院网络协议编程课程设计报告院系 运算机与通信工程学院专 业网络工程班级 网络 1101 班 学号 202158080110同学姓名赵思雨指导老师谢晓巍课程成果完成日期 2021 年 9 月 24 日课程设计成果评定欢迎下载精品学习资源院系 运算机与通信工程专业网络工程班级 网络 1101 班学号 202158080110 同学姓名赵思雨指导老师谢晓巍评分工程优良中及格不及格学习态度与遵守纪律情形课程设计完成情形 课程设计报告地质量指导老师成果指导老师签字年月 日课程设计答辩组对同学在课程设计中地评判评分工程优良中及格不及格课程设计完成情形课程设计报告地
2、质量课程设计答辩答辩组成果课程设计综合成果答辩组长签字年 月 日注:课程设计综合成果指导老师成果60%答辩组成果 40%课程设计任务书运算机与通信工程学院网络工程 专业课程名称网络协议编程课程设计时间2021 年 9 月 15 日 9 月 28 日同学姓名赵思雨指导老师谢晓巍题 目基于 UDP 网络通信系统地服务端程序设计指导老师对同学在课程设计中地评判欢迎下载精品学习资源主要内容:( 1)懂得 UDP 协议地基本功能和工作原理.( 2)培育运用理论学问解决实际问题地才能.( 3)懂得 UDP 协议在 Java编程语言中地具体表达.( 4)运用所学地学问,学会分析程序,并从实际上实现即时通讯地
3、要求.要求:( 1)实现地是服务器和客户端地通讯.( 2)学会文献检索地基本方法和综合运用文献地才能.( 3)通过课程设计培育严谨地科学态度,仔细地工作作风和团队协作精神应当提交地文件:(1) 课程设计报告.(2) 课程设计附件(源程序、各类图纸、试验数据、仿真截图等实证材料).基于 UDP 网络通信系统地服务端程序设计同学姓名:赵思雨指导老师:谢晓巍摘 要 随着网络技术地进展及人们生活地需求,网络谈天已越来越受到人们地青睐.网络谈天已经成为人们工作生活中传递信息、沟通感情地重要工具,给人们带来了很大地便利. 本欢迎下载精品学习资源课题是开发一个基于UDP 地局域网谈天系统 ,运用软件工程地设
4、计流程,综合运用数据库编程技术、 Windows 程序设计技术、网络通讯技术,此网络谈天工具采纳客户端/服务器(C/S)模式 ,客户端采纳 UDP 与服务器连接,客户端与客户端之间通过UDP 相互通讯 .服务器端具有服务器端口设置,此谈天工具能实现多人谈天功能,适用于局域网使用地网络谈天工具,其操作简洁,敏捷性好,运行也比较稳固.关键词 网络通讯;客户端 /服务器模型;用户数据报协议;套接字1 引 言自进入信息化社会以来,人们地生活发生了翻天覆地地变化,全部这一切地实现都要 归功于运算机网络 .自从运算机网络显现以来,网络进展越来越快速,其重要性更是不行估量.现在,网络已经进入到我们生活地各个
5、角落,大到网上理财、网上会议、网上战争,小到上网购物、查找资料,网上谈天等,可以说网络把我们地世界变“小”了,即使在天际海 角,我们也可以随时联系.一个最简洁且应用最广泛地例子 网上谈天,就是最好地证明. 本课程设计将基于UDP 协议和局域网环境,使用Java 语言实现一个即时网络通讯程序.1.1 背景介绍随着运算机网络信息技术地日益进展和成熟,人们地生活由于网络而变得更多姿多彩,基于网络地通讯技术也犹如雨后春笋般涌现到网络世界中.TCP 协议和 UDP 协议是网络通讯地基本协议.而对于一般地信息沟通,UDP 协议就由于更便利简洁,所以常常采纳UDP 协议开发这类即时通讯程序.欢迎下载精品学习
6、资源1.2 课程设计地目地( 1)懂得 UDP 协议地基本功能和工作原理.( 2)培育运用理论学问解决实际问题地才能.( 3)懂得 UDP 协议在 Java编程语言中地具体表达 .( 4)运用所学地学问,学会分析程序,并从实际上实现即时通讯地要求.1.3 课程设计地基本任务本次课程设计是基于UDP 协议地通讯程序,所以其基本任务就是要实现地是服务器和客户端地通讯,即服务器对端口进行监听,客户端发送数据给服务器,服务器接收.实现了这个过程,就达到了本次课程设计地目地.2 设计原理2.1 UDP 协议原理UDP 协议地全称是用户数据报协议,在网络中它与TCP 协议一样用于处理数据包,是一种无连接地
7、协议 .在 OSI 模型中,在第四层 传输层,处于 IP 协议地上一层 .UDP 有不供应数据包分组、组装和不能对数据包进行排序地缺点,也就是说,当报文发送之后,是无法得知其是否安全完整到达地.UDP 用来支持那些需要在运算机之间传输数据地网络应用. 包括网络视频会议系统在内地众多地客户/ 服务器模式地网络应用都需要使用UDP 协议.UDP 协议从问世至今已经被使用了许多年,虽然其最初地光荣已经被一些类似协议所掩盖,但是即使是在今日UDP 仍旧不失为一项特别有用和可行地网络传输层协议.UDP 是 OSI 参考模型中一种无连接地传输层协议,它主要用于不要求分组次序到达地传输中,分组传输次序地检查
8、与排序由应用层完成,供应面对事务地简洁不行靠信息传送服务.UDP 协议基本上是 IP 协议与上层协议地接口.UDP 协议适用端口分别运行在同一台设备上地多个应用程序 .与所熟知地 TCP(传输掌握协议)协议一样,UDP 协议直接位于 IP(网际协议)协议地顶层 .依据 OSI (开放系统互连)参考模型,UDP 和 TCP 都属于传输层协议.UDP 协议地主要作用是将网络数据流量压缩成数据包地势式.一个典型地数据包就是一个二进制数据地传输单位.每一个数据包地前8 个字节用来包含报头信息,剩余字节就用来包含具体地传输数据 .UDP 是无连接地,即发送数据之前不需要建立连接(当然发送数据终止时也没有
9、连接可欢迎下载精品学习资源释放)因此削减了开销和发送数据之前地时延.UDP 使用地是尽最大努力交付,即不保证牢靠交付,因此主机不需要维护复杂地连接状态表 .UDP 是面对报文地 .发送方地UDP 对应程序交下来地报文,在添加首部后就向下交付给 IP 层.UDP 对应用层交下来地报文,既不合并,也不拆分,而是保留这些报文地边界.UDP 是定义用来在互连网络环境中供应数据报交换地运算机通信地协议.此协议默认是IP 下层协议 .此协议供应了向另一用户程序发送信息地最简便地协议机制,不需要连接确认和爱护复制,所以在软件实现上比较简洁,需要地内存空间比起TCP 相对较小 .UDP 包头由 4 个域组成,
10、其中每个域各占用2 个字节 .( 1)源端口号( 16 位): UDP 数据包地发送方使用地端口号.( 2)目标端口号(16 位): UDP 数据包地接收方使用地端口号.UDP 协议使用端口号为不同地应用保留其各自地数据传输通道.UDP 和 rap 协议正是采纳这一机制,实现对同一时刻内多项应用同时发送和接收数据地支持.( 3)数据报长度( 16 位) .数据报地长度是指包括报头和数据部分在内地总地字节数.理论上,包含报头在内地数据包地最大长度为65535 字节 .不过,一些实际应用往往会限制数据包地大小,有时会降低到8192 字节 .4 )校验值( 16 位) .UDP 协议使用包头中地校验
11、值来保证数据地安全.2.2 客户端 /服务器模式客户机一方, UDP 应用程序功能如下:( 1) 打开通信信道(申请一套接字),并连接到服务器在主机地保留端口,该端口对应服务器地UDP 进程.( 2) 向服务器发出恳求报文,等待接收应答.( 3) 从服务器方收到最终应答结果,或在不再恳求时关闭信道并终止客户机进程.服务器一方, UDP 应用程序动作如下:( 1) 打开通信信道(申请一套接字),通知本地主机在某一保留端口接收客户机请求.( 2) 等待客户恳求到达指定端口.( 3) 接收到恳求,启动一新进程处理用户恳求,同时释放旧进程以响应新地客户恳求,一旦服务完成,关闭新进程与客户地通信链路.(
12、 4) 连续等待客户机恳求 .欢迎下载精品学习资源( 5) 假如不想响应客户机恳求,关闭服务器进程3.设计步骤此次设计是编写一个基于UDP 地即时通讯程序,要求双方能够进行即时通讯,实现谈天和传输文件地功能 .本课程设计主要负责地是通讯程序客户端地设计.其具体设计如下 .3.1 谈天模块设计流程图设置服务器端端口号为80设置客户端端口号为80服务器端设计程序得出当前服务器地地址客户端输入所要连接地服务器地址地址是否相同输入客户端发送地信息接收客户端发送地消息,发出服务器消息接收服务器发送到消息,发出客户端消息接受客户端发送地消息,发出服务器消息消息内容是否为NULL即时通讯程序客户端 /服务器
13、端谈天模块设计流程图如下列图.欢迎下载精品学习资源图 1-1 谈天模块流程图3.2 具体设计依据 UDP 协议地基本特性以及Java 语言编程特点,然后对比设计流程图,在Eclipse编程环境下编写出实现该即时谈天系统地程序,具体步骤如下:1. 打开 Eclise 创建一个 Java工程,命名为UDPChat.2. 在 Java工程目录下创建一个package,命名为 UDPChat.3. 在此 package 目录下创建一个类,类名为Client ,创建完之后弹出一个编辑窗口,在此编辑环境下编写客户端程序,其谈天模块服务器端核心程序如下:public class Server public
14、static void mainString args new UDPServer.start ; / 启动服务器class UDPServer extends Thread public UDPServer /缺省构造函数public void run try DatagramSocket socket = new DatagramSocket80 ; /建立一个 Socket连接 ,端口号为 80 System.out.println 服务器 IP地址为: + InetAddress.getLocalHost.getHostAddress; /得到服务器地址 ,并打印出来/实现客户端和服务
15、器端地连续通信while true / 接收byte instr = new byte200;/定义数组 ,用来储存客户端发送来地数据DatagramPacket receive = new DatagramPacketinstr, instr.length ;socket.receivereceive ; /接收客户机发过来地数据欢迎下载精品学习资源String str = new Stringreceive.getData ; /提取数据System.out.println 客户端消息: + str.trim ; /打印客户机消息/ 发送System.out.print 接收到地服务器消息
16、:; / 打印消息str = new BufferedReadernew InputStreamReaderSystem.in.readLine; / 得到输入地数据byte outstr = new bytestr.length;outstr = str.getBytes ;DatagramPacket send = new DatagramPacketoutstr,outstr.length, receive.getAddress, receive.getPort ; /向客户机发送数据socket.sendsend; /执行发送 catch Exception e /错误处理e.prin
17、tStackTrace ;文件传输模块核心代码如下:public void run System.out.printlnConnected from + socket.getRemoteSocketAddress;try BufferedReader in = new BufferedReadernew InputStreamReadersocket.getInputStream ; / 定义字符流PrintWriter out = new PrintWriternewBufferedWriternewOutputStreamWritersocket.getOutputStream,true
18、;/创建打印对象String inputLine, outputLine;HandleInput handleInput = new HandleInput;outputLine = handleInput.handlenull;欢迎下载精品学习资源out.printlnoutputLine;whileinputLine = in.readLine .= null/读取信息outputLine = handleInput.handleinputLine; / 每次读一行out.printlnoutputLine ;out.flush ;ifoutputLine.equalsbye/终止标志br
19、eak;ifoutputLine.equalspassword:valid/prepare for the transmission of the file Thread.sleep2000; /线程休眠InputStream fileInput = new FileInputStreamnew FileDEFAULT_FILE_NAME;/创建字节输入流OutputStream fileOutput = new DataOutputStreamnew BufferedOutputStreamsocket.getOutputStream ; / 创建字节输出流byte buf = new by
20、te2048;/transmit the fileint num = fileInput.readbuf;whilenum .= -1 fileOutput.writebuf, 0, num;fileOutput.flush ;num = fileInput.readbuf;fileInput.close ; /关闭输入流fileOutput.close ; /关闭输出流欢迎下载精品学习资源in.close ;out.close ;System.out.printlnDisconnected from + socket.getRemoteSocketAddress;socket.close;
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 2022 基于 UDP 网络 通信 系统 服务端 程序设计 课程设计 报告
限制150内