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

下载本文档

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

文档简介

编号:计算机网络课程设计标题:基于UDP的聊天程序部门:计算机科学与工程学院摘要信息随着网络技术的发展和人们的生活要求,网络聊天越来越受欢迎。网络聊天已经成为人们工作生活中传递信息和交流感情的重要工具,给人们带来了很大的便利。本主题是开发数据库编程技术、Windows编程技术、客户端/服务器(C/S)模式、客户端通过UDP与服务器连接、客户端与客户端之间通过UDP相互通信的基于UDP的局域网聊天系统。服务器端具有允许多人聊天的服务器端口设置,适用于使用局域网的internet聊天工具,使用简单、灵活,操作可靠。关键字:网络通信;客户端/服务器模型、用户数据报协议;插座-29-/32精选的合同。一、需求分析1.1课程旨在开发用于两台计算机之间即时通信的软件,以方便两台计算机之间的信息交换。特别是在连接和通信时,最近的即时消息与远程服务器完全断开,从而防止在连接到远程服务器时浪费网络资源。此外,由于在服务器忙或无法连接到服务器的情况下不必浪费太多的时间连接到服务器,因此该软件是适应性强、实用性强的即时消息软件;本课程旨在学习基于UDP协议实现internet聊天程序,并以编程方式理解网络编程中无连接的概念。内容用户数据报设计为1.2课程,UDP是一种未连接的协议,使用此类协议,无需在两台计算机之间建立固定连接;也就是说,通信在服务器和客户端之间没有对等通信,因此其优点很明显。因此,设计可以聊天的软件,实现两台计算机之间的即时通信是其优点。1.3课程设计通过基于UDP协议实现的聊天和一对多聊天提供了用户友好的用户界面。二.了解UDP协议:UDP协议是用户数据报协议(英语UserDatagramProtocol的缩写),主要用于支持需要在计算机之间传输数据的网络应用程序。许多客户/服务器模型的网络应用程序(包括web视频会议系统)需要UDP协议。UDP协议最初被一些类似的协议遮挡,但直到今天仍然是非常实用、可行的网络传输层协议。UDP协议直接位于internet协议(IP)协议的顶部。UDP协议的主要作用是以数据报格式压缩网络数据流量。典型的数据报是二进制数据的传输单位。每个数据报的前8个字节用于包含标头信息,其馀字节用于包含特定传输数据。UDP协议使用端口号为每个应用程序维护其自己的数据传输通道。支持同时发送和接收数据就是这种机制。发送数据的端(客户端或服务器端)通过源端口发送UDP数据报,数据接收端通过目标端口接收数据。某些网络应用程序只能使用预先调度或注册的静态端口。其他网络应用程序可以使用未注册的动态端口。UDP标头使用2个字节来存储端口号,因此端口号的有效范围为0-65535。通常,大于49151的端口号表示动态端口。数据报长度表示字节总数,包括标头和数据部分。标头长度是固定的,因此此域主要用于计算可变长度的数据部分(也称为数据加载)。数据报的最大长度取决于生产环境。理论上,包含标头的数据报的最大长度为65535字节。但是,某些实际应用程序经常限制数据报大小,将其减少到8192字节。UDP协议使用标头中的验证值保护数据的安全。验证值必须由数据发送者使用特殊算法首先计算,传递给接收方,然后重新计算。如果数据报在传输过程中被第三方篡改或因线路噪音等原因损坏,则发送和接收方的验证计算值不匹配,从而允许UDP协议检测错误。UDP协议不提供数据传输的保证机制。在从发送方传送到接收方的过程中发生数据报丢失的情况下,协议本身不进行任何检测或提示,信息可靠性传送机制被排除,将安全和分级等功能传送到父应用程序完成,将大大缩短执行时间,确保速度。三.UDP协议属性1、UDP在传输数据之前不与对方建立连接。也就是说,UDP没有连接,在传输数据之前,发送方和接收方交换信息,使双方保持同步。2,UDP未对收到的数据进行排序,UDP消息的开头没有有关数据顺序的信息(如TCP使用的序列号),消息不一定按顺序到达,因此无法启动接收方。3、UDP坞接收的数据报不发送确认信号,发送者不发送正确接收的数据或重新发送数据。4、UDP传输数据比TCP快,系统开销少。5、由于缺乏拥塞控制,需要基于网络的机制来减少由于无法控制和高速UDP流量负载而引起的拥塞冲突的影响。这意味着UDP发射器无法检测拥塞,因此网络基础设备(如数据包队列和使用丢弃技术的路由器)通常成为减少UDP过度流量的有效工具。DCCP(数据报拥塞控制协议)旨在通过增加高速UDP流(如流媒体类型)中的主机拥塞控制来减少此潜在问题。如上所述,UDP提供了无连接、不可靠的数据传输方式,并致力于提供数据。四。基于C/S的多客户互通信原理分析:在C/S模式下,是基于分布式、集中式和分布式开发的新模型,目前大多数网络通信和应用程序都属于此模型,而在C/S模式下,网络事务分为两部分。一个是客户端(Client),它为用户提供网络请求服务,另一个是服务器(Server),它接受用户对服务的请求。为实际应用程序和实际计算设备透明地提供这些服务。例如,我们去饭店吃饭的时候,首先要吃什么,属于顾客,饭店服务员应要求提供适当的服务,属于服务提供者,该吃饭的厨师会做什么,酒店服务员会联系,顾客只应与服务器打交道。客户端和服务器处理实际上是启动服务器进程并等待客户端联系的两个进程,客户端启动客户进程和服务器交易。服务器进程处理一个客户服务进程请求的信息,然后等待其他客户的请求。V.套接字编程原理分析:图1.1插槽编程结构注意:在使用socket()之前创建新套接字。Bind()将套接字地址与创建的套接字名称相关联。发送和接收Send()和recv()数据;关闭Closesocket()套接字。六、概要设计服务器客户端a客户端b客户端c图2.1整体框架设计服务器端的主要功能是启动监听进程,将端口号设置为7777,新的客户服务端进程向自己发送连接请求,为每个活动连接客户机设置ID号,启动包含threads容器的监听进程以管理客户机线程。连接到客户端进行套接字通信。套接字通信首先从服务器端接收数据流,然后从客户端发送的信息通过服务器端传递给所有其他客户端,在服务器端就像中间的桥一样。客户端主要要求的功能是,显示聊天信息等,建立与服务器端的通信,主动向服务器端发送连接请求,然后在输入文本框中注册事件,并构建图形界面,持续接收和显示发送给客户端的消息。7、详细设计服务器端:建立伺服器介面创建Seversvsocket类SV套接字创建容器以管理客户端进程启动监听、监听客户机连接、建立连接指定ID监听线程监听端口是否包含消息接收信息(如果有)向所有其他客户发送信息客户离开时结束与他人的通信为客户端连接创建线程从容器vector中移除线程表示线程已结束从聊天室到这两者的连接图7.1服务器端总体设计流程图客户端设置seversocket类,创建vector用于管理客户端的线程,请求服务器连接的客户端建立套接字连接,创建进程设置ID,通知其他客户端有新的客户端访问,接收所有客户端线程通过端口传入的信息,然后将其发送到其他客户端。客户端关闭时,通知其他客户端,终止与该客户端的套接字连接,然后从vector中删除该线程。主界面服务器界面,运行服务器端运行客户注册经验:经过两周的学习和实践,我成功地完成了计算机网络课程设计,同时对计算机网络有了一般的理解,在实践过程中经历了很多困难,觉得理论和实践相结合很困难,觉得我们学的那些知识也没有用,深刻地认识到为了使通过这门课学到的知识可用,必须把实践和理论相结合,通过自己的努力和老师们的帮助看问题的眼光也增加了很多;我也发现我学的知识不太强。只是花钱的急救考试。在以后的学习中,要经常告诫自己,脚踏实地地做好每一步。本课程是用Java语言编写的,尽管以前接触过这种语言,但通过这两周的学习,我们受益匪浅。首先,我进一步了解了Java语言的编程方法和原理,并学习了如何编写JAVA程序。接下来,我进一步了解了JAVA语言是面向对象的语言,具有可视化编程功能,代码具有可移植性。本课程旨在实现UDP即时消息程序。撰写并执行程式后,除错程式以进一步了解Java语言。我对UDP协议的特性和工作流程有了更深入的了解。UDP协议提供不连接、不可靠的服务。在传输层工作,是传输层的重要协议之一。最后,UDP协议使用客户端模型和服务器端模型进行传输。这次讲座设计在理解知识的重要性的同时,让我更好地理解了实践。我们必须经常把学到的知识付诸实践,才能充分融会贯通。同时,也让我意识到自己的手能力太差,给了我未来的学习和发展一个警钟!这次讲座设计过程中出现了不少问题,但最终成功地结束了。这次课对我来说有很大的收获。懂得独立寻找和学习资料是最大的收获。今后工作中肯定会面临不知道问题的情况,有这次讲课的经验,可以独立学习解决困难。主代码Package serverimport Java . awt . container;import Java . awt . event . action event;import Java . awt . event . action listener;import Java . awt . event . window adapter;import Java . awt . event . windows event;import Java . io . data input stream;import Java . io . dataoutputstream;import Java . io . io exception;import Java . io . object input stream;import Java . io . object output stream;import Java . net . server socket;import Java . net . socket;import Java . util . ArrayList;import Java . util . date;import javax . swing . jbutton;import javax . swing . jframe;import javax . swing . jlabel;import javax . swing . joption pane;import javax . swing . js croll bar;import javax . swing . js croll pane;import javax . swing . jtextarea;import javax . swing . jtextfield;public class server extends jframe Private JTextArea allmsgPrivate jtfield curr num、totalnum、copyright、chat msgPrivate JButton send、Private JScrollPane jsInt num1、num2、port/*-num2:当前联机人数num 23360联机人数合计port:服

温馨提示

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

评论

0/150

提交评论