计算机网络课程设计报告--基于UDP协议的聊天程序.docx
《计算机网络课程设计报告--基于UDP协议的聊天程序.docx》由会员分享,可在线阅读,更多相关《计算机网络课程设计报告--基于UDP协议的聊天程序.docx(13页珍藏版)》请在第一文库网上搜索。
1、计算机网络课程设计报告题目:基于UDP协议的聊天程序一、问题描述本课程设计是是基于UDP协议的网络聊天程序设计,UDP协议是无连接的协议,是TCP/IP协议的一种分层协议。通过本设计进一步掌握利用ViSUa1C+进行程序设计的能力和运用面向对象程序设计的思想和方法,初步掌握开发一个小型实用系统的基本方法,理解Windows程序的运行过程。本设计实现的聊天工具要求在MicrosoftVisua1C+6.0,编写一个程序,采用C/S模式,模拟网络上的聊天软件,实现在局域网上两台主机之间的通信。且经过测试,该聊天程序能够正常运行,实现了设计目标。二、概要设计2. 1设计原理UDP协议的全称是用户数据
2、报协议,在网络中它与TCP协议一样用于处理数据包,是一种无连接的协议。在OS1模型中,在第四层一一传输层,处于IP协议的上一层。UDP有不提供数据包分组、组装和不能对数据包进行排序的缺点,也就是说,当报文发送之后,是无法得知其是否安全完整到达的。UDP用来支持那些需要在计算机之间传输数据的网络应用。包括网络视频会议系统在内的众多的客户/服务器模式的网络应用都需要使用UDP协议。UDP协议从问世至今已经被使用了很多年,虽然其最初的光彩已经被一些类似协议所掩盖,但是即使是在今天UDP仍然不失为一项非常实用和可行的网络传输层协议。UDP是定义用来在互连网络环境中提供数据报交换的计算机通信的协议。此协
3、议默认是IP下层协议。此协议提供了向另一用户程序发送信息的最简便的协议机制,不需要连接确认和保护复制,所以在软件实现上比较简单,需要的内存空间比起TCP相对较小。UDP包头由4个域组成,其中每个域各占用2个字节。(1)源端口号(16位):UDP数据包的发送方使用的端口号。(2)目标端口号(16位):UDP数据包的接收方使用的端口号。UDP协议使用端口号为不同的应用保留其各自的数据传输通道。UDP和rap协议正是采用这一机制,实现对同一时刻内多项应用同时发送和接收数据的支持。(3)数据报长度(16位)。数据报的长度是指包括报头和数据部分在内的总的字节数。理论上,包含报头在内的数据包的最大长度为6
4、5535字节。不过,一些实际应用往往会限制数据包的大小,有时会降低到8192字节。(4)校验值(16位)。UDP协议使用包头中的校验值来保证数据的安全。2.2客户机/服务器模式由于这次课程设计是实现点到点的可靠连接,所以在此使用UDP连接方式。在这个连接中,双方分为客户和服务器,他们各自的功能不同。客户机一方,UDP应用程序功能如下:(1)打开通信信道(申请一套接字),并连接到服务器在主机的保留端口,该端口对应服务器的UDP进程。(2)向服务器发出请求报文,等待接收应答。(3)从服务器方收到最终应答结果,或在不再请求时关闭信道并终止客户机进程。服务器一方,UDP应用程序动作如下:(1)打开通信
5、信道(申请一套接字),通知本地主机在某一保留端口接收客户机请求。(2)等待客户请求到达指定端口。(3)接收到请求,启动一新进程处理用户请求,同时释放旧进程以响应新的客户请求,一旦服务完成,关闭新进程与客户的通信。(4)继续等待客户机请求。(5)如果不想响应客户机请求,关闭服务器进程2.2系统流程图三、详细设计3. 1设计思路基于UDP协议通信和基于TCP协议的通信不同,基于UDP的消息传递更快,但不提供可靠性的保证。也就是说,数据在传递的时候,用户无法知道数据能否正确的到达目的地主机,也不能确定数据到达目的地的顺寻是否和发送的顺序相同。系统采用的是客户端/服务器工作模式,所以应有客户端和服务器
6、两个类,其中客户端向服务器请求服务。而基于UDP通信的基本模式是:将数据打包,称为数据包,然后将数据包发往目的地。接受别人发来的数据包,然后查看数据包的内容。3. 2基于UDP的聊天程序服务器端源程序:创建套接字,因为是基于UDP的,所以用SOCK_DGRAM.SOCKETSockSrv=SOCket(AF_INET,SOCK_DGRAM,O);对于服务器端,接着应该进行绑定SOCKADDR_INaddrSrv;定义一个地址结构体的变量addrSrv.sin_addr.Sun.Saddr=hton1(INADDRANY);addrSrv.Sin_fami1y二AFNET;地址族addrSrv.
7、Sin_POrt=htons(6000);端口号bind(sockSrv,(SOCKADDR*)feaddrSrv,Sizeof(SOCKADDR);charrecvBuf100;字符数组,用来接收信息charSendBUf100;用来发送信息chartempBuf200;用来存放中间数据SOCKADDR_INaddrC1ient;定义一个地址结构体的变量,在通讯的时候,我们需要获取和我们通讯的这一方的地址信息,这一获取是我们通过调用recvfrom来获得的,但是我们需要提供一个地址结构体的变量intIen=Sizeof(SOCKADDR);WhiIe循环,保证通讯过程能够不断的循环下去whi
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 计算机网络 课程设计 报告 基于 UDP 协议 聊天 程序