1、山 东 英 才 学 院毕 业 论 文(设 计)论 文 ( 设 计 ) 题 目 : 网 络 聊 天 系 统 的 设 计 与 实 现 二级学院: 计算机学院 学科专业: 计算机应用技术 学 号: 200601010037 姓 名: 赵广智 班 级: 计算机应用一班 指导教师: 赵陈粟 论文提交时间: 2009.3.18 山东英才学院教务处制2009 年 3 月 18 日山东英才职业技术学院 计算机应用技术专业毕业(设计)论文题目:网络聊天系统的设计与实现 第 2 页 共 24 页 毕业论文(设计)内容介绍论文(设计)题 目 网络聊天系统的设计与实现选题时间 2008.12.20 完成时间 2009
2、.3.15论文(设计)字数6400关 键 词 Winsock 即时通讯 点对点 数据流图 数据字典 结构图 层次输入输出处理图 伪码论文(设计)题目的来源、理论和实践意义:随着计算机网络日新月异的发展,人们的交流方式越来越多,传统的交流方式,如:信件、电报、电话等已经难以满足人们的交流要求,在互联网上即时的和好友取得联系,已经成为当今社会人们主流的联系方式。因此,两台计算机之间进行即时通讯、发送文件等交流方式已经成为必然潮流。目前,用于实现单一的即时通讯、文件共享的软件实在太少,而且,它们中大部分都是绝对的模式,对远程服务器有非常大的依赖性,没有彻底实现点对点的交流。为此,我们决定开发一个专用
3、于实现两台计算机之间即时通讯、文件共享的软件,以方便两台计算机之间信息的交流。论文(设计)的主要内容及创新点:本文主要描述了如何利用汇编语言编写一个能够实现网络之间信息传递的聊天程序系统,并介绍了无连接协议的 SOCKET 编程模型,以及阐述了聊天程序的设计目的前景和具体规划,还有聊天程序的商业运作。本软件属于点对点连接的,在连接并通信时,尤其是近程的即时通讯,彻底的脱离了远程的服务器,避免了和远程服务器连接时过多的浪费网络资源。并且避免了服务器忙或与服务器无法连接时,浪费过多时间用于和服务器建立连接!因此,这个软件是极具适应性和实用性的即时通讯软件。附:论文(设计) 本人签名: 赵广智 20
4、09 年 3 月 15 日山东英才职业技术学院 计算机应用技术专业毕业(设计)论文题目:网络聊天系统的设计与实现 第 3 页 共 24 页 网络聊天系统的设计与实现目 录摘 要 .4ABSTRACT .5前 言 .6一、聊天系统的运行开发环境 .71.1 硬件环境 .71.2 软件环境 .9二、走进 UDP 协议 .102.1UDP 的定义 .102.2UDP 的组成 .10三、利用 VB 语言设计网络聊天系统 .133.1 创建服务器 .133.2 创建客户 .143.3 进行通信 .15四、网络聊天软件的验证 .16总结 .18谢 辞 .19参考文献 .20附录 .21山东英才职业技术学院
5、 计算机应用技术专业毕业(设计)论文题目:网络聊天系统的设计与实现 第 4 页 共 24 页 摘 要本文主要描述了如何利用汇编语言编写一个能够实现网络之间信息传递的聊天程序系统.并介绍了无连接协议的 SOCKET 编程模型,以及阐述了聊天程序的设计目的前景和具体规划,还有聊天程序的商业运作.本论文共分为五部分.第一部分简单的分析了即时聊天系统开发的可行性,并重点对技术可行性(选择 VB)做了详细分析;第二部分借助数据流图和数据字典对系统的功能和性能进行了详细的需求分析,建立了系统的逻辑结构;第三部分利用 VB 程序设计了 UDP 聊天程序;第四部分验证了设计的程序;第五部分是此次设计的结论总结
6、及部分参考文献和附录。关键字:Winsock 即时通讯 点对点 数据流图 数据字典 结构图 层次输入输出处理图 伪码 山东英才职业技术学院 计算机应用技术专业毕业(设计)论文题目:网络聊天系统的设计与实现 第 5 页 共 24 页 AbstractThis paper describes how to use assembly language to achieve the preparation of a network of transmitting information between the chat program system. also is now the network r
7、apid development result.The present paper altogether divides into five parts.The first part of simple analysis this immediate communication system development feasibility, and key (chose VB) to the technical feasibility to make the multianalysis; The second part has carried on the detailed demand an
8、alysis with the aid of the data flow graph and the data dictionary to the system function and the performance, has established the system logical organization; The third part chatted the procedure using VB programming UDP; The fourth part has confirmed the design procedure; Finally is this design co
9、nclusion summary and the part reference and the appendix.Key Word: Winsock immediate communication point-to-point, data flow graph data dictionary structure drawing level input output processing chart pseudo-code VB山东英才职业技术学院 计算机应用技术专业毕业(设计)论文题目:网络聊天系统的设计与实现 第 6 页 共 24 页 前 言随着计算机网络日新月异的发展,人们的交流方式越来越
10、多,传统的交流方式,如:信件、电报、电话等已经难以满足人们的交流要求,在互联网上即时的和好友取得联系,已经成为当今社会人们主流的联系方式。因此,两台计算机之间进行即时通讯、发送文件等交流方式已经成为必然潮流。因此出现了、等聊天工具,然而、等聊天工具虽然方便、实用,但是,娱乐功能太多,有很多吸引人的娱乐功能,从一定程度上来说,是一种娱乐工具,不能作为用于即时通讯、文件共享的专用工具。目前,用于实现单一的即时通讯、文件共享的软件实在太少,而且,它们中大部分都是绝对的模式,对远程服务器有非常大的依赖性,没有彻底实现点对点的交流。为此,我们决定开发一个专用于实现两台计算机之间即时通讯、文件共享的软件,
11、以方便两台计算机之间信息的交流。本软件属于点对点连接的,在连接并通信时,尤其是近程的即时通讯,彻底的脱离了远程的服务器,避免了和远程服务器连接时过多的浪费网络资源。并且避免了服务器忙或与服务器无法连接时,浪费过多时间用于和服务器建立连接!因此,这个软件是极具适应性和实用性的即时通讯软件!山东英才职业技术学院 计算机应用技术专业毕业(设计)论文题目:网络聊天系统的设计与实现 第 7 页 共 24 页 一、聊天系统的运行开发环境1.1UDP 协议 硬件环境 1) UDP 协议是英文 UserDatagramProtocol 的缩写,即用户数据报协议,主要用来支持那些需要在计算机之间传输数据的网络应
12、用。包括网络视频会议系统在内的众多的客户/服务器模式的网络应用都需要使用 UDP 协议。UDP 协议从问世至今已经被使用了很多年,虽然其最初的光彩已经被一些类似协议所掩盖,但是即使是在今天,UDP 仍然不失为一项非常实用和可行的网络传输层协议。(2) 与我们所熟知的 TCP(传输控制协议)协议一样,UDP 协议直接位于 IP(网际协议)协议的顶层。根据 OSI(开放系统互连)参考模型,UDP 和 TCP 都属于传输层协议。(3) UDP 协议的主要作用是将网络数据流量压缩成数据报的形式。一个典型的数据报就是一个二进制数据的传输单位。每一个数据报的前 8 个字节用来包含报头信息,剩余字节则用来包
13、含具体的传输数据。(4) 吞吐量不受拥挤控制算法的调节,只受应用软件生成数据的速率、传输带宽、源端和终端主机性能的限制。虽然 UDP 是一个不可靠的协议,但它是分发信息的一个理想协议。例如,在屏幕上报告股票市场、在屏幕上显示航空信息等等。UDP 也用在路由信息协议 RIP(Routing Information Protocol)中修改路由表。在这些应用场合下,如果有一个消息丢失,在几秒之后另一个新的消息就会替换它。UDP 广泛用在多媒体应用中,例如,Progressive Networks 公司开发的 RealAudio 软件,它是在因特网上把预先录制的或者现场音乐实时传送给客户机的一种软件
14、,该软件使用的 RealAudio audio-on-demand protocol 协议就是运行在 UDP 之上的协议,大多数因特网电话软件产品也都运行在UDP 之上。用户数据报协议是定义用来在互连网络环境中提供包交换的计算机通信的协议。此协议默认认为网路协议(IP)是其下层协议。此协议提供了向另一用户程序发送信息的最简便的协议机制。此协议是面向操作的,未提供提交和复制保护。如果应用程序要求可靠的数据传送应该使用传输控制协议(TCP ) 。数据报格式如下: 山东英才职业技术学院 计算机应用技术专业毕业(设计)论文题目:网络聊天系统的设计与实现 第 8 页 共 24 页 图 1 用户数据报头格
15、式源端口是可选域,当其有意义时,它指的是发送进程的端口,这也就假定了在没有其它信息的情况下,返回信息应该向什么地方发送。如果不使用它,则在此域中填 0。目的端口在有特定的目的网络地址时有意义。长度指的是此用户数据报长度的八进制表示。 (这表明最小的数据报长度是 8。 )校验码有 16 位,是对 IP 头,UDP 头和数据中信息包头的数位取反之和再取反得到的。包头从概念上说是在 UDP 头信息之前的,它包括有源地址,目的地地址,所使用的协议和UDP 长度。这些信息使信息不能被错误地接收。这个校验过程与 TCP 中使用的过程一致。图 2 用户数据报头格式如果计算出的校验码为零,它将被全零发送。全零
16、的校验值意味着发送者未产生校验码。用户接口用户接口应该允许创建新的接收端口,在接收端口的接收操作有:应该返回一个八进制数说明源端口和源地址,允许数据报传送,指定数据,源和目标端口和目的地地址。IP 层接口UDP 模块必须能够决定源和目标的网络地址,而且必须能够从包头中得知所使用的协议。一个可能的接口方式是返回整个数据报,包括接收操作返回的包头。这样的接口还应该允许 UDP 向IP 传送完整的带包头的数据报用于传送。由 IP 来确定一致性并计算校验码。协议应用此协议的最主要的用途是网际名称服务器和小文件传输协议。协议号山东英才职业技术学院 计算机应用技术专业毕业(设计)论文题目:网络聊天系统的设
17、计与实现 第 9 页 共 24 页 在 IP 中使用它时,它的协议号是 17(八进制中是 21) 。1.2UDP 协议 软件环境Microsoft Windows 98 中文版;Windows NT(SP3.0 以上)或 Windows 2000 操作系统;Delphi 6.0。山东英才职业技术学院 计算机应用技术专业毕业(设计)论文题目:网络聊天系统的设计与实现 第 10 页 共 24 页 二、UDP 协议简介2.1UDP 的定义UDP(User Datagram Protocol)协议就是“用户数据报协议”,它是一种无连接的协议,无连接主要是和 TCP 协议相比较的。我们知道当利用 TCP
18、 协议传送数据的时候,首先必须先建立连接(也就是所谓的握手)才可以传输数据。而当计算机利用 UDP 协议进行数据传输的时候,发送方只需要知道对方的 IP 地址和端口号就可以发送数据,而并不需要进行连接。当然如果你非要进行连接,通过 VisualB也是可以实现的,但前提是要确定连接的远程主机的端口号处于监听状态,否则程序会出现不必要的错误,但这是种画蛇添足的做法,不仅丢失了 UDP 协议的无连接传送数据的特点和优点,而且还给程序运行带来了不安定的因素。所以这种方法并不值得提倡。 2.2UDP 的组成UDP 信息包由 UDP 标题和数据组成。UDP 的标题结构如图 15-21 所示,它由 5 个域
19、组成:服务器(socket( )、客户机(socket( )、用户数据包的长度(Length)和检查和(Checksum)。其中,前 4个域组成 UDP 标题(UDPheader),每个域由 4 个字节组成;检查和域占据 2 个字节,它用来检测传输过程中是否出现了错误;用户数据包的长度包括所有 5 个域的字节数。 服 务 器 socket( ) bind( )recvfrom( ) sendto( ) 阻 塞 , 等 待 客 户 数 据 处 理 服 务 请 求 socket( ) bind( ) sendto( ) recvfrom( ) 客 户 机 服 务 请 求 服 务 应 答 无 连 接 套 接 口 应 用 程 序 时 序 图 closesocket( ) closesocket( ) UDP 信息包的标题结构检查和的详细计算可在 RFC1071 中找到,现举一例说明使用检查和检测错误的道理。例如,