(合同范本)基于UDP协议的网络聊天程序设计_第1页
(合同范本)基于UDP协议的网络聊天程序设计_第2页
(合同范本)基于UDP协议的网络聊天程序设计_第3页
(合同范本)基于UDP协议的网络聊天程序设计_第4页
(合同范本)基于UDP协议的网络聊天程序设计_第5页
免费预览已结束,剩余11页可下载查看

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

选拔合同。基于UDP协议的网络聊天程序设计学生姓名:XX讲师:XX摘要:本课程设计是一个基于UDP协议的网络聊天程序设计。UDP协议是一种无连接协议,是TCP/IP协议的分层协议。通过这种设计,我们可以进一步掌握用Visual C语言编程的能力和面向对象编程的思想和方法。我们可以初步掌握开发小型实用系统的基本方法,了解视窗程序的运行过程。本设计中设计和实现的聊天工具需要在微软的Visual C 6.0上编写一个程序,使用C/S模式模拟网络上的聊天软件,实现局域网上两台主机之间的通信。经过测试,聊天程序能够正常运行,达到设计目标。关键词UDP协议;客户端/服务器;网络聊天1导言现在是网络的世界,网络的发展是不可估量的,它可以涵盖我们生活的方方面面,从上网看新闻和购物,到网上理财和网上会议。可以说,网络使我们的世界变得更小了,甚至在地平线角,只要有网络,我们就可以随时联系。最简单的形式就是网上聊天,比如QQ、MSN等非常简单的聊天工具,这样可以随时缩短你我之间的距离。本设计将实现一个基于UDP协议和局域网环境的即时聊天程序。1.1本文的主要内容本文的第二部分介绍了UDP协议和客户机/服务器模式的基本原理,第三部分详细描述了设计思路和过程,第四部分是本课程设计的总结。1.2设计平台微软视觉C 6.0,简称VC或VC6.0,是微软推出的一款C编译器,将“高级语言”翻译成“机器语言(低级语言)”。Visual C是一个强大的可视化软件开发工具。自从微软在1993年推出Visual C 1.0以来,随着新版本的不断发布,Visual C已经成为专业程序员开发软件的首选工具。虽然微软公司已经推出了可视C .NET(Visual C 7.0),但它的应用程序有很大的局限性,只适用于Windows 2000、Windows XP和Windows NT4.0。因此,在实践中,可视C 6.0更多的是一个平台。Visual C 6.0是由微软开发的。它不仅是一个C编译器,而且是一个基于Windows操作系统的可视化集成开发环境。Visual C 6.0由许多组件组成,包括编辑器、调试器、程序向导、应用向导、类向导和其他开发工具。这些组件通过一个名为Developer Studio的组件集成到一个和谐的开发环境中。微软的主要软件产品。Visual C是一个强大的可视化软件开发工具。自从微软在1993年推出Visual C 1.0以来,随着新版本的不断发布,Visual C已经成为专业程序员开发软件的首选工具。虽然微软公司已经推出了可视化的C .NET(可视化的C 7.0),但它的应用是有限的,只适用于视窗2000,视窗XP和视窗NT4.0。因此,在实践中,可视化的C 6.0更多的是一个平台。2设计原则2.1 UDP协议原理UDP协议的全称是用户数据报协议,用于在网络中处理数据包,如TCP协议,是一种无连接协议。在OSI模型中,第四层的传输层是IP协议之上的一层。UDP的缺点是不提供分组、组装和不能对分组进行分类,也就是说,当消息被发送时,不可能知道它是否安全和完整地到达。UDP用于支持需要在计算机之间传输数据的网络应用程序。包括网络视频会议系统在内的许多客户机/服务器模式的网络应用都需要UDP协议。UDP协议自诞生以来已经使用了很多年。尽管它最初的辉煌已经被一些类似的协议所掩盖,但是即使在今天,UDP仍然是一个非常实用和可行的网络传输层协议。UDP是OSI参考模型中的一种无连接传输层协议。它主要用于不需要数据包顺序到达的传输。数据包传输顺序的检查和排序由应用层完成,提供面向事务的简单而不可靠的信息传输服务。UDP协议基本上是IP协议和上层协议之间的接口。UDP协议适用于端口在同一设备上运行的多个应用程序。与众所周知的传输控制协议一样,UDP协议直接位于互联网协议的顶层。根据开放系统互连参考模型,UDP和TCP属于传输层协议。UDP协议的主要功能是将网络数据流量压缩成数据包。典型的数据包是二进制数据的传输单位。每个数据包的前8个字节用于包含报头信息,而剩余的字节用于包含特定的传输数据。UDP是无连接的,也就是说,在发送数据之前不需要建立连接(当然,在发送数据结束时不需要释放连接),因此减少了发送数据之前的开销和延迟。UDP使用尽力传送,这不能保证可靠的传送,因此主机不需要维护复杂的连接状态表。UDP是面向消息的。在添加报头之后,由发送方的UDP对应程序传递的消息被向下传递到IP层。UDP不合并或拆分应用层传递的消息,但保留这些消息的边界。UDP是一种定义计算机通信的协议,用于在互连的网络环境中提供数据报交换。该协议默认为IP低层协议。该协议为向另一个用户程序发送信息提供了最简单的协议机制,无需连接确认和复制保护,因此软件实现相对简单,所需的内存空间也比TCP少。UDP数据包报头由4个域组成,每个域占用2个字节。(1)源端口号(16位):由UDP数据包的发送方使用的端口号。(2)目的端口号(16位):接收方使用的端口号。UDP协议使用端口号为不同的应用保留各自的数据传输通道。UDP和rap协议使用这种机制来支持多个应用程序同时发送和接收数据。(3)数据报长度(16位)。数据报的长度是指包括报头和数据部分在内的总字节数。理论上,包含报头的数据包的最大长度是65535字节。然而,一些实际应用通常会限制数据包的大小,有时会减少到8192字节。(4)检查值(16位)。UDP协议使用报头中的校验值来确保数据安全。2.2客户端/服务器模式由于本课程旨在实现可靠的点对点连接,因此这里使用了UDP连接。在这方面,双方分为客户和服务器,他们各自的功能是不同的。在客户端,UDP应用程序的功能如下:(1)打开通信通道(申请一个套接字)并连接到主机中服务器的保留端口,这对应于服务器的UDP进程。(2)向服务器发送请求消息并等待回复。(3)从服务器接收最终响应结果,或者在不再请求时关闭通道并终止客户端进程。在服务器端,UDP应用程序的作用如下:(1)打开通信通道(申请套接字),并通知本地主机在保留端口接收客户端请求。(2)等待客户请求到达指定端口。(3)收到请求后,启动新流程来处理用户请求,并释放旧流程来响应新客户请求。服务完成后,关闭新流程和客户之间的通信链接。(4)继续等待客户请求。(5)如果您不想响应客户端请求,请关闭服务器进程。3个设计步骤3.1总体设计理念基于UDP的通信不同于基于TCP的通信。基于UDP的消息传递速度更快,但不能保证可靠性。换句话说,当数据被传输时,用户不能知道数据是否能正确到达目的主机,也不能确定到达目的主机的数据序列是否与发送的序列相同。系统使用客户机/服务器工作模式,因此应该有两类:客户机和服务器,其中客户机从服务器请求服务。基于UDP的通信的基本模式是:打包数据,称为数据包,然后发送到目的地。接受他人发送的数据包,然后检查数据包的内容。3.2功能模块的调用流程设计:客户服务器插座()插座()绑定()绑定()双向的沟通接收自()/SendTo()接收自()/SendTo()关闭()关闭()图3.1程序设计流程图服务器端:Socket(),建立流套接字;Bind()将套接字绑定到服务器地址结构;接收自()/发送至(),在套接字上接收/发送数据;Close()关闭套接字。客户端和服务器是相同的。3.3基于UDP的网络聊天程序的实现3.3.1基于UDP的聊天程序服务器端源程序:/创建套接字/第二个参数不同于TCP设置。套接字sockSrv=套接字(AF_INET,SOCK_DGRAM,0);SOCKADDR _ IN addrSrv/设置服务器套接字地址结构的相关属性addrSrv.sin_addr。S_un。s _ addr=htonl(INADDR _ ANY);/设置IPaddrsrv . sin _ port=htons(20000);/设置端口号addrSrv.sin _ family=AF _ INET/将套接字绑定到服务器地址结构bind(sockSrv,(SOCKDARD *)AddresrV,sizeof(SOCKDARD);char Recvbuf100;char SendBuf100;100型半焦;SOCKADDR _ IN addrClientint len=sizeof(SOCKADDR);/从客户端接收数据recvfrom(sockSrv,recvBuf,100,0,(SOCKADDR *) addrClient,len);if (q=recvBuf0)sendto(sockSrv, q ,strlen(q) 1,0,(SOCKADDR*) addrClient,len);cout“图表结束”endl休息;/退出循环/在对方发送的消息的前面添加IP地址并输出sprintf(tempBuf),%s表示%sn”,inet_ntoa(addrClient.sin_addr),RecVBuf);cout tempBuf endl/将用户的键盘输入发送给对方“请输入消息:”结束;获取(SendBuf);sendto(sockSrv,sendBuf,strlen(sendBuf) 1,0,(SOCKADDR * )addrClient,len);3.3.2基于UDP的聊天程序客户端源程序:/创建套接字SOCKET sockClient=套接字(AF_INET,SOCK_DGRAM,0);/第二个参数不同于TCP设置。SOCKADDR _ IN addrSrv/服务器地址结构addrSrv.sin_addr。S_un。s _ addr=inet _ addr(“127 . 0 . 0 . 1”);/服务器地址addrsrv . sin _ port=htons(20000);/服务器端口号addrSrv.sin _ family=AF _ INET“请输入发送的消息:”结束;获取(SendBuf);/获取用户的键盘输入/在对方发送的消息的前面添加IP地址并输出sprintf(tempBuf),%s表示%sn,inet _ ntoa(Addresrv . sin _ addr),RecVBuf);cout tempBuf endl3.4程序测试结果图3.2客户端向服务器发送信息图3.3服务器接收的信息图3.4服务器向客户端发送信息图3.5客户端收到的服务器信息结论这门计算机网络课程花了两周时间来设计,我学到了很多。他不仅巩固了以前学过的知识,而且还学到了很多书本上学不到的知识。当然,在这个过程中我也遇到了很多问题,但是由于老师耐心的帮助和讲解,我进一步加深了对计算机网络的理解,对它更感兴趣了。尤其是当每一步都成功的时候,我的心非常高兴。总的来说,这次设计的基于UDP协议的

温馨提示

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

评论

0/150

提交评论