《(合同范本)java版基于UDP协议网上聊天程序课程设计》由会员分享,可在线阅读,更多相关《(合同范本)java版基于UDP协议网上聊天程序课程设计(24页珍藏版)》请在金锄头文库上搜索。
1、 编号:_本资料为word版本,可以直接编辑和打印,感谢您的下载(合同范本)java版基于UDP协议网上聊天程序课程设计 甲 方:_乙 方:_日 期:_说明:本合同资料适用于约定双方经过谈判、协商而共同承认、共同遵守的责任与义务,同时阐述确定的时间内达成约定的承诺结果。文档可直接下载或修改,使用时请详细阅读内容。课程设计资料袋计算机与通信学院学院(系、部)2013 2014 学年第 1 学期课程名称 网络协议分析 指导教师李建设 职称 副教授学生姓名 专业班级网络工程 学号题 目基于UDP协议网上聊天程序成 绩 起止日期2013 年11月25日2013年12月13日序号材料名称资料数量备注1课
2、程设计任务书2课程设计说明书3456课程设计任务书2013 2014学年 第1学期学院(系、部)计算机与通信学院专业网络工程 班级 102课程名称:网络工程 学生姓名:设计题目:基于UDP协议网上聊天程序指导教师: 李建设完成期限:自 2013年 11月 25 日至 2013年 12 月 13日共 3 周内 容 及 任务一、设计内容实现一个基于UDP#议的简单的聊天程序,包括服务器和客户端。1. 支持多人聊天。2. 客户端具有图形化用户界面。二、设计任务课程设计说明书(纸质 +电子版),内容包括:设计内容、系统分析 (包括可行性分析、需求 分析等)及功能分析;系统设计(要求圆出系统整体功能框图
3、、流程图、并给出相应地关键的代码且对所使用的主要数据结构进行说明等。)、设计总结(评价/遇到的问题/体会/建议等)、使用说明等。三、设计要求1. 按功能要求开发系统,能正确运行。程序代码书写规范,有充足的注释。2. 课程设计所使用的编程语言任选,但建议使用C或C+;3. 绿色软件:程序运行不需安装,避免写系统和注册表;进度安排起止日期工作内容2013-11-252013-11-30选题2013-12-12013-12-3系统分析和设计;2013-12-42013-12-8熟悉软件开发工具、编码系统、系统测试2013-12-92013-12-13撰写并提交课程设计说明书 (含电子文档)、源程序等
4、。主要参考资料1 (美)W.Rechard Steven著,范建华等译,TCP/IP详解卷1:协议,机械工业出版社,2000.42 (美)Douglas E.Comer著,林瑶等译,用TCP/IP进行网际互联第 1卷-原理、协议与 结构(第5版,电子工业出版社)2007.2;3 (何)Andrew S.Tanenbaum者,潘爱民译.计算机网络(第4版),清华大学出版社,20044 谢希仁著.计算机网络(第5版),电子工业出版社,2008.15 吴功宜等著.计算机网络课程设计,机械工业出版社,2005指导教师(签字):年 月 日系(教研室)主任(签字):年 月 日谋程设计说明书课程名称:网络协
5、议分析设计题目:基于UD呦议网上聊天程序专 业:学生姓名:指导教师:班级:学号:李建设2013年12月13日目录1课程设计简介41.1课程设计的目的41.2 课程设计内容 42课程设计实现过程52.1协议原理52.2客户机/服务器模式 72.3关键技术82.4流程图102.5系统结构图112.6 程序调试及界面效果图 112.7源代码153设计总结224参考文献231课程设计简介1.1课程设计的目的开发一个专用于实现两台计算机之间即时通讯的软件,以方便两台或两台以上的计算机之间信息的交流。,在连接并通信时,尤其是近程的即时通讯,彻底 的脱离了远程的服务器,避免了和远程服务器连接时过多的浪费网络
6、资源。并且避免了服务器忙或与服务器无法连接时,浪费过多时间用于和服务器建立连接! 因此,这个软件是极具适应性和实用性的即时通讯软件!本次课程设计的目的是学习基于UDF议实现网络聊天程序,已达到学会面向无连接方式的程序设计方 法,并理解网络编程中面向无连接的概念。1.2课程设计内容1. 实现一个基于UDF议的简单的聊天程序,包括服务器和客户端。2. 支持多人聊天。3. 客户端具有图形化用户界面。2课程设计实现过程2.1协议原理UDP协议的全称是用户数据报协议,在网络中它与TCP协议一样用于处 理数据包,是一种无连接的协议。在 OSI模型中,在第四层一一传输层,处于 IP协议的上一层。UDP不提供
7、数据包分组、组装和不能对数据包进行排序的缺 点,也就是说,当报文发送之后,是无法得知其是否安全完整到达的。UDFffl来支持那些需要在计算机之间传输数据的网络应用。包括网络视频会议系统在内的 众多的客户/服务器模式的网络应用都需要使用 UDFft、议。UDP协议从问世至今 已经被使用了很多年,虽然其最初的光彩已经被一些类似协议所掩盖,但是即使 是在今天UDFW然不失为一项非常实用和可行的网络传输层协议。UDP是OSI参考模型中一种无连接的传输层协议,它主要用于不要求分 组顺序到达的传输中,分组传输顺序的检查与排序由应用层完成,提供面向事务的简单不可靠信息传送服务。UDP协议基本上是IP协议与上
8、层协议的接口。UDP 协议适用端口分别运行在同一台设备上的多个应用程序。与所熟知的TCP(传输控制协议)协议一样,UDFW议直接位于IP (网 际协议)协议的顶层。根据 OSI (开放系统互连)参考模型,UDPffi TCP都届于 传输层协议。UDP协议的主要作用是将网络数据流量压缩成数据包的形式。一个典型 的数据包就是一个二进制数据的传输单位。每一个数据包的前8个字节用来包含 报头信息,剩余字节则用来包含具体的传输数据。UDP是无连接的,即发送数据之前不需要建立连接(当然发送数据结束 时也没有连接可释放)因此减少了开销和发送数据之前的时延。UDP使用的是尽最大努力交付,即不保证可靠交付,因此
9、主机不需要维 持复杂的连接状态表。UDP是面向报文的。发送方的UDPM应程序交下来的报文,在添加首部 后就向下交付给IP层。UDP对应用层交下来的报文,既不合并,也不拆分,而 是保留这些报文的边界。UDP是定义用来在互连网络环境中提供数据报交换的计算机通信的协 议。此协议默认是IP下层协议。此协议提供了向另一用户程序发送信息的最简 便的协议机制,不需要连接确认和保护复制, 所以在软件实现上比较简单,需要 的内存空间比起TCPffi对较小。UDPfe头由4个域组成,其中每个域各占用2个字节。(1) 源端口号(16位):UD啜据包的发送方使用的端口号。(2) 目标端口号(16位):UDP数据包的接
10、收方使用的端口号。UDPB议使用端口号为不同的应用保留其各自的数据传输通道。UDPft rap协议正是采用这一机制,实现对同一时刻内多项应用同时发送和接收数据的支持。(3) 数据报长度(16位)。数据报的长度是指包括报头和数据部分在内的总的字节数。理论上,包含报头在内的数据包的最大长度为65535字节。不过,一些实际应用往往会限制数据包的大小,有时会降低到8192字节。(4) 校验值(16位)。UDPW议使用包头中的校验值来保证数据的安全。2.2客户机/服务器模式由丁这次课程设计是实现点到点的可靠连接, 所以在此使用UDP接方式 在这个连接中,双方分为客户和服务器,他们各自的功能不同。客户机一
11、方,UDP用程序功能如下:(1) 打开通信信道(申请一套接字),并连接到服务器在主机的保留端口, 该端口对应服务器的UDR!程。(2) 向服务器发出请求报文,等待接收应答。(3) 从服务器方收到最终应答结果,或在不再请求时关闭信道并终止客户机进程服务器一方,UDP用程序动作如下:(1) 打开通信信道(申请一套接字),通知本地主机在某一保留端口接收 客户机请求。(2) 等待客户请求到达指定端口。(3) 接收到请求,启动一新进程处理用户请求,同时释放旧进程以响应新 的客户请求,一旦服务完成,关闭新进程与客户的通信链路。(4) 继续等待客户机请求。(5) 如果不想响应客户机请求,关闭服务器进程。2.
12、3关键技术Socket 乂称作套接字,它是使用 标准Unix 文件描述 符 (file descriptor) 和其它程序通讯的方式。使用 send()和recv()让你 更好的控制数据传输。在Java网络编程中,socket相当于应用程序的港口码头; 在计算机网络中,套接字由ip地址和端口号组成,为进程之间通信提供地址。 两个主机进行通信实际上就是两个主机中的应用进程互相通信,应用进程之间的通信乂称为端到端的通信。为应用进程之间的通信提供运输服务的是运输层的运 输协议,运输层需要有两种不同的运输协议,即面向连接的TCPft无连接的UDP 在Java中,用于实现基于UDP的聊天程序,使用两个重
13、要的类(DatagramSocket 类和 DatagramPacket 类)。DatagramSocket 类表示用来发送 和接收数据报包的套接字。数据报套接字是包投递服务的发送或接收点。每个在 数据报套接字上发送或接收的包都是单独编址和路由的。从一台机器发送到另一 台机器的多个包可能选择不同的路由,也可能按不同的顺序到达。 在 DatagramSocket上总是启用UDP广播发送。为了接收广播包,应该将 DatagramSocket绑定到通配符地址。在某些实现中,将 DatagramSocket绑定到 一个更加具体的地址时广播包也可以被接收。DatagramPacket类表示数据报包。 数
14、据报包用来实现无连接包投递服务。 每条报文仅根据该包中包含的信息从一台 机器路由到另一台机器。从一台机器发送到另一台机器的多个包可能选择不同的 路由,也可能按不同的顺序到达。 不对包投递做出保证。服务程序工作在服务器 的某个端口上,一旦启动服务,它将在这个端口上监听,等待客户程序发来请求, 当有客户连接到该端口, accept ()方法就返回一个Socket对象,可以用该对 象获得一个输入输出流。服务器的套接字用服务器套接字类( ServerSocket )来 建立。具体实现如下:(1) 建立一个服务者,端口为6666。(2) 服务者永远等待,一旦客户送来正确的请求,连接至该端口,accept ()方法就返