《网络编程技术课程设计》论文2012 — 2013学年第二学期
题目:UDP聊天程序
专业班级:网络10-5班
学号:311009040504
姓名:王亚歌
指导老师:张俊
日期:2013-6-25
目录
一、引言 (2)
二、基础理论 (2)
1、UDP协议简介 (2)
2、系统需求分析 (3)
三、功能设计 (4)
1、设计目的 (4)
2、设计要求 (4)
四、系统实现 (5)
1、原理概述 (5)
2、程序设计流程 (5)
五、设计过程 (6)
1、程序设计流程及源代码 (6)
源代码 (6)
主机A (6)
主机B (10)
2、调试分析过程描述 (15)
3、结果分析 (15)
六、结论 (16)
[参考文献] (16)
一、引言
随着计算机科学和Internet 的飞速发展,网上聊天室已成为人们相互交流的一种方式,与E—mail 电话相比,聊天服务更具有实时性和有效性。本课题是java基于UDP协议的聊天程序。聊天室分为客户端和服务器端,服务器端程序主要用来负责侦听客户发来的消息,客户端需要等服务器登录成功以后检测到服务器存在的情
【关键词】UDP 协议;网络聊天室;.Windows Socket 网络编程
二、基础理论
1、UDP协议简介
Windows Socket 网络编程简介Windows Sockets 规范本意在于提供给应用程序开发者一套简单的API,使应用程序开发者能够使用,并且网络软件供应商能够实现的一套库函数调用和相关语义。现在的Windows Sockets 已经基本上实现了与协议无关,你可以使用Windows Sockets 来调用多种协议的功能,但较常使用的是TCP/IP 协议。
Socket 实际在计算机中提供了一个通信端口,可以通过这个端口与任何一个具有Socket 接口的计算机通信。应用程序在网络上传输,接收的信息都通过这个Socket 接口来实现。微软为VC 定义了Windows Sockets 类如CAsyncSocket 类和派生于CAsyncSocket 的CSocket 类,它们简单易用。根据传输数据类型的不同,Socket 主要分为三类:1)流式Socket(SOCK—STREAM),在这种方式下,两个通讯的应用程序之闻要先建立一种虚拟的连接,提供可靠的、面向连接的通信流,它使用”TCP” 协议。从而保证了数据传输的正确性和顺序的。2) 数据报Socket(SOCK—DGRAM),它使用数据报协议UDP,定义了一种无连接的服务,数据通过相互独立的报文进行传输,是无序的,并且不保证可靠、无差错。3)原始Socket,原始套接字允许对底层协议如IP 或ICMP 直接访问,它功能强大但使用较为不便,主要用于一些协议的开发。
UDP 协议简介UDP 协议是一个面向无连接的协议。其连接的建立不必像TCP 那样需要服务器端侦听,也不需要有客户机请求连接,属于一种“强制”
性的网络连接。提供一对一或一对多的、UDP 无连接的数据报服务。该服务对消息中传输的数据提供不可靠的、最大努力的传送,这意味着它不保证数据的到达,也不保证所传送的数据报的顺序是否正确,UDP 不重新传输丢失的数据。其主要工作是:将应用程序传输过来的数据分块交给网络层,确认接受到分组信息。
尽管UDP 无法像TCP 一样提供可靠的数据传输,但UDP 并不比TCP 缺乏优越性。UDP 在传输效率方面比TCP 要高一些,而且许多应用程序并不需要保证严格的传输可靠性,比如视频会议系统等,需要实时的交互,但并不要求音频视频的绝对正确。
● UDP 优缺点:1.UDP 不要求保持一个连接;2.UDP 没有因接收方认可收到数据包(或者当数据包没有正确抵达而自动重传)而带来的开销;3.设计UDP 的目的是用于短应用和控制消息;4.在一个数据包连接一个数据包的基础上,UDP 要求的网络带宽比TCP 更小。
2、系统需求分析
(一)客户需求分析分析客户的需求,这里只列出比较核心的部分。(1) 只限于局域网内聊天。(2) 简易的操作界面。。(3) 可以同时与多个人聊天。
(4) 可以保存聊天记录。
(二)性能需求分析(1)可靠性高,能在由于系统问题或其它原因产生错误后,作出相对应处理,比如网络初始化失败、服务器不在线等,可以提示用户安全退出本程序,在出现不可知的错误以后,可以尽量安全的退出程序。在程序的设计过程中,要求能尽可能多的设想到用户使用过程中可能发生的事件,并能在判断事件后做出相应的处理,使程序具有较高的容错性能。(2)宜操作性,程序简单易懂,容易上手使用。设计界面是,简化界面的复杂性,模拟QQ 等现有即时通讯工具的界面,使用户能很容易看懂并使用。(3)开发文档易理解,保证以后自己开发时,能够清晰的理解整个系统的设计思路和实现细节。(4)模块化设计此软件的功能,不同的模块实现不同的功能,使得软件易于维护与扩展。
(三)运行需求分析(1)用户界面程序较小,启动速度快,无启动界面。
在本地局域网中使用,所以无需进行用户登录,无需认证界面,启动后的应用界面要清爽,设计要简单明了,要具有较高的易用性。(2)故障处理在遇到可预知的故障与情况时,能提示用户并自动退出;在遇到不可预知的故障时能安全退出。
三、功能设计
开发一个专用于实现两台计算机之间即时通讯的软件,以方便两台计算机之间信息的交流。,在连接并通信时,尤其是近程的即时通讯,彻底的脱离了远程的服务器,避免了和远程服务器连接时过多的
浪费网络资源。并且避免了服务器忙或与服务器无法连接时,浪费过多时间用于和服务器建立连接!因此,这个软件是极具适应性和实用性的即时通讯软件!本次课程设计的目的是学习基于UDP协议实现网络聊天程序,已达到学会面向无连接方式的程序设计方法,并理解网络编程中面向无连接的概念。
1、课程设计的内容
用户数据报(UDP)是一个无连接协议,使用这种协议时,需要在两台计算机之间建立固定的连接,也就是说,通信双方没有服务器和客户机之分,它们之间进行的是对等通信,所以它的优势很明显,是现代通信不可或缺的一部分。所以,利用它的优势设计一个可以实现私聊和聊的软件,实现两台计算机间的即时通讯。
2、课程设计要求
基于UDP协议实现一对一的聊天的聊天,提供友好的用户界面,便于用户进行操作。根据目前使用聊天程序的用户需求显示,用户对于聊天程序主要有以下几点要求:
(1)聊天功能:可以实现实时接收和发送文字信息,并能支持公聊和私聊的方式。
(2)用户功能:可以查看对方的开放信息,以及发送方的IP
四、系统实现
基于java的课程设计题目

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。