网络聊天系统开发与设计完整版论文Word文档下载推荐.docx
- 文档编号:22059848
- 上传时间:2023-02-02
- 格式:DOCX
- 页数:17
- 大小:115.36KB
网络聊天系统开发与设计完整版论文Word文档下载推荐.docx
《网络聊天系统开发与设计完整版论文Word文档下载推荐.docx》由会员分享,可在线阅读,更多相关《网络聊天系统开发与设计完整版论文Word文档下载推荐.docx(17页珍藏版)》请在冰豆网上搜索。
2008.12.20
完成时间
2009.3.15
字数
6400
关键词
Winsock即时通讯点对点 数据流图 数据字典 结构图 层次输入输出处理图 伪码
论文(设计)题目的来源、理论和实践意义:
随着计算机网络日新月异的发展,人们的交流方式越来越多,传统的交流方式,如:
信件、电报、电话等已经难以满足人们的交流要求,在互联网上即时的和好友取得联系,已经成为当今社会人们主流的联系方式。
因此,两台计算机之间进行即时通讯、发送文件等交流方式已经成为必然潮流。
目前,用于实现单一的即时通讯、文件共享的软件实在太少,而且,它们中大部分都是绝对的C/S模式,对远程服务器有非常大的依赖性,没有彻底实现点对点的交流。
为此,我们决定开发一个专用于实现两台计算机之间即时通讯、文件共享的软件,以方便两台计算机之间信息的交流。
论文(设计)的主要内容及创新点:
本文主要描述了如何利用汇编语言编写一个能够实现网络之间信息传递的聊天程序系统,并介绍了无连接协议的SOCKET编程模型,以及阐述了聊天程序的设计目的前景和具体规划,还有聊天程序的商业运作。
本软件属于点对点连接的,在连接并通信时,尤其是近程的即时通讯,彻底的脱离了远程的服务器,避免了和远程服务器连接时过多的浪费网络资源。
并且避免了服务器忙或与服务器无法连接时,浪费过多时间用于和服务器建立连接!
因此,这个软件是极具适应性和实用性的即时通讯软件。
附:
本人签名:
赵广智2009年3月15日
目录
摘
要4
Abstract5
前
言6
一、聊天系统的运行开发环境7
1.1硬件环境7
1.2软件环境9
二、走进UDP协议10
2.1UDP的定义10
2.2UDP的组成10
三、利用VB语言设计网络聊天系统13
3.1创建服务器13
3.2创建客户14
3.3进行通信15
四、网络聊天软件的验证16
总结18
谢辞19
参考文献20
附录21
要
本文主要描述了如何利用汇编语言编写一个能够实现网络之间信息传递的聊天程序系统.并介绍了无连接协议的SOCKET编程模型,以及阐述了聊天程序的设计目的前景和具体规划,还有聊天程序的商业运作.本论文共分为五部分.
第一部分简单的分析了即时聊天系统开发的可行性,并重点对技术可行性(选择VB)做了详细分析;
第二部分借助数据流图和数据字典对系统的功能和性能进行了详细的需求分析,建立了系统的逻辑结构;
第三部分利用VB程序设计了UDP聊天程序;
第四部分验证了设计的程序;
第五部分是此次设计的结论总结及部分参考文献和附录。
关键字:
Winsock即时通讯点对点 数据流图 数据字典 结构图 层次输入输出处理图 伪码
Abstract
Thispaperdescribeshowtouseassemblylanguagetoachievethepreparationofanetworkoftransmittinginformationbetweenthechatprogramsystem.alsoisnowthenetworkrapiddevelopmentresult.Thepresentpaperaltogetherdividesintofiveparts.
Thefirstpartofsimpleanalysisthisimmediatecommunicationsystemdevelopmentfeasibility,andkey(choseVB)tothetechnicalfeasibilitytomakethemultianalysis;
Thesecondparthascarriedonthedetaileddemandanalysiswiththeaidofthedataflowgraphandthedatadictionarytothesystemfunctionandtheperformance,hasestablishedthesystemlogicalorganization;
ThethirdpartchattedtheprocedureusingVBprogrammingUDP;
Thefourthparthasconfirmedthedesignprocedure;
Finallyisthisdesignconclusionsummaryandthepartreferenceandtheappendix.
KeyWord:
Winsockimmediatecommunicationpoint-to-point,dataflowgraphdatadictionarystructuredrawinglevelinputoutputprocessingchartpseudo-codeVB
言
因此出现了QQ、UC等聊天工具,然而QQ、UC等聊天工具虽然方便、实用,但是,娱乐功能太多,有很多吸引人的娱乐功能,从一定程度上来说,是一种娱乐工具,不能作为用于即时通讯、文件共享的专用工具。
因此,这个软件是极具适应性和实用性的即时通讯软件!
一、聊天系统的运行开发环境
1.1UDP协议硬件环境
1)UDP协议是英文UserDatagramProtocol的缩写,即用户数据报协议,主要用来支持那些需要在计算机之间传输数据的网络应用。
包括网络视频会议系统在内的众多的客户/服务器模式的网络应用都需要使用UDP协议。
UDP协议从问世至今已经被使用了很多年,虽然其最初的光彩已经被一些类似协议所掩盖,但是即使是在今天,UDP仍然不失为一项非常实用和可行的网络传输层协议。
(2)与我们所熟知的TCP(传输控制协议)协议一样,UDP协议直接位于IP(网际协议)协议的顶层。
根据OSI(开放系统互连)参考模型,UDP和TCP都属于传输层协议。
(3)UDP协议的主要作用是将网络数据流量压缩成数据报的形式。
一个典型的数据报就是一个二进制数据的传输单位。
每一个数据报的前8个字节用来包含报头信息,剩余字节则用来包含具体的传输数据。
(4)吞吐量不受拥挤控制算法的调节,只受应用软件生成数据的速率、传输带宽、源端和终端主机性能的限制。
虽然UDP是一个不可靠的协议,但它是分发信息的一个理想协议。
例如,在屏幕上报告股票市场、在屏幕上显示航空信息等等。
UDP也用在路由信息协议RIP(RoutingInformationProtocol)中修改路由表。
在这些应用场合下,如果有一个消息丢失,在几秒之后另一个新的消息就会替换它。
UDP广泛用在多媒体应用中,例如,ProgressiveNetworks公司开发的RealAudio软件,它是在因特网上把预先录制的或者现场音乐实时传送给客户机的一种软件,该软件使用的RealAudioaudio-on-demandprotocol协议就是运行在UDP之上的协议,大多数因特网电话软件产品也都运行在UDP之上。
用户数据报协议是定义用来在互连网络环境中提供包交换的计算机通信的协议。
此协议默认认为网路协议(IP)是其下层协议。
此协议提供了向另一用户程序发送信息的最简便的协议机制。
此协议是面向操作的,未提供提交和复制保护。
如果应用程序要求可靠的数据传送应该使用传输控制协议(TCP)。
数据报格式如下:
图1用户数据报头格式
源端口是可选域,当其有意义时,它指的是发送进程的端口,这也就假定了在没有其它信息的情况下,返回信息应该向什么地方发送。
如果不使用它,则在此域中填0。
目的端口在有特定的目的网络地址时有意义。
长度指的是此用户数据报长度的八进制表示。
(这表明最小的数据报长度是8。
)校验码有16位,是对IP头,UDP头和数据中信息包头的数位取反之和再取反得到的。
包头从概念上说是在UDP头信息之前的,它包括有源地址,目的地地址,所使用的协议和UDP长度。
这些信息使信息不能被错误地接收。
这个校验过程与TCP中使用的过程一致。
图2用户数据报头格式
如果计算出的校验码为零,它将被全零发送。
全零的校验值意味着发送者未产生校验码。
用户接口
用户接口应该允许创建新的接收端口,在接收端口的接收操作有:
应该返回一个八进制数说明源端口和源地址,允许数据报传送,指定数据,源和目标端口和目的地地址。
IP层接口
UDP模块必须能够决定源和目标的网络地址,而且必须能够从包头中得知所使用的协议。
一个可能的接口方式是返回整个数据报,包括接收操作返回的包头。
这样的接口还应该允许UDP向IP传送完整的带包头的数据报用于传送。
由IP来确定一致性并计算校验码。
协议应用
此协议的最主要的用途是网际名称服务器和小文件传输协议。
协议号
在IP中使用它时,它的协议号是17(八进制中是21)。
1.2UDP协议软件环境
MicrosoftWindows98中文版;
WindowsNT(SP3.0以上)或Windows2000操作系统;
Delphi6.0。
二、UDP协议简介
2.1UDP的定义
UDP(UserDatagramProtocol)协议就是“用户数据报协议”,它是一种无连接的协议,无连接主要是和TCP协议相比较的。
我们知道当利用TCP协议传送数据的时候,首先必须先建立连接(也就是所谓的握手)才可以传输数据。
而当计算机利用UDP协议进行数据传输的时候,发送方只需要知道对方的IP地址和端口号就可以发送数据,而并不需要进行连接。
当然如果你非要进行连接,通过VisualB#也是可以实现的,但前提是要确定连接的远程主机的端口号处于监听状态,否则程序会出现不必要的错误,但这是种画蛇添足的做法,不仅丢失了UDP协议的无连接传送数据的特点和优点,而且还给程序运行带来了不安定的因素。
所以这种方法并不值得提倡。
2.2UDP的组成
UDP信息包由UDP标题和数据组成。
UDP的标题结构如图15-21所示,它由5个域组成:
服务器(socket())、客户机(socket())、用户数据包的长度(Length)和检查和(Checksum)。
其中,前4个域组成UDP标题(UDPheader),每个域由4个字节组成;
检查和域占据2个字节,它用来检测传输过程中是否出现了错误;
用户数据包的长度包括所有5个域的字节数。
UDP信息包的标题结构
检查和的详细计算可在RFC1071中找到,现举一例说明使用检查和检测错误的道理。
例如,假设从源端A要发送下列3个16位的二进制数:
word1,word2和word3到终端B,检查和计算如下:
word1
0110011001100110
word2
010*********
word3
0000111100001111
sum=word1+word2+word3
1100101011001010
检查和(sum的反码)
0011010100110101
从发送端发出的4个(word1,2,3以及检查和)16位二进制数之和为111111*********1,如果接收端收到的这4个16位二进制数之和也是全“1”,就认为传输过程中没有出差错。
许多链路层协议都提供错误检查,包括流行的以太网协议,读者也许想知道为什么UDP也要提供检查和。
其原因是链路层以下的协议在源端和终端之间的某些通道可能不提供错误检测。
虽然UDP提供有错误检测,但检测到错误时,UDP不做错误校正,只是简单地把损坏的消息段扔掉,或者给应用程序提供警告信息。
读者也可能会问,收发两端的两个进程是否有可能通过UDP提供可靠的数据传输?
答案是可以的。
但必需要把确认和重传措施加到应用程序中,应用程序不能指望UDP来提供可靠的数据传输。
由于UDP协议并不需要进行确定的连接,所以编写基于UDP协议的应用程序比起编写基于TCP协议的应用程序要简单些(程序中可以不需要考虑连接和一些异常的捕获工作)。
但同时也给基于UDP协议编写的程序带来了一个致命的缺点,UDP由于不提供可靠数据的传输,当计算机之间利用UDP协议传送数据的时候,发送方只管发送数据,而并不确认数据是否被对方接收。
这样就会导致某些UDP协议数据包在传送的过程中丢失,尤其网络质量不令人满意的情况下,丢失数据包的现象会更严重。
这就是为什么在网络上传输重要数据不采用UDP协议的原因。
但是我们也不能因为这一个缺点就全面否定UDP协议,这是因为虽然利用UDP协议来传送安全性要求高的数据是不适合的,但对于那些不重要的数据,或者即使丢失若干数据包也不影响整体性的数据,如音频数据,视频数据等,采用UDP协议就是一个非常不错的选择。
如目前网络流行的很多即时聊天程序,如OICQ和ICQ等,采用的就是UDP协议。
同时虽然UDP协议无法保证数据可靠性,但具有对网络资源开销较小,数据处理速度快的优点,所以在有些对数据安全性要求不是很高的情况下,采用UDP协议也是一个非常不错的选择。
总结一下上面的内容,可见UDP是一种不面向连接的网络协议,既有其优点,也有其不足,具体如下:
1.基于UDP协议的网络应用程序,实现起来比较简单,并且基于UDP协议的网络应用程序在运行时,由于受到环境影响较小,所以不容易出错。
2.UDP协议占用网络资源较少,数据处理较快,所以在网络中传送对安全性要求不是十分高数据时,其优点比较明显。
所谓对安全性要求不高的数据,是指那些不重要的数据,或者是即使丢失若干数据,也不影响其整体的数据,如音频数据等。
目前很多流行的网络应用程序都是基于UDP协议的,如QQ、UC,XXHI,MSN等。
3.由于其不是面向连接的网络协议,其缺点也是非常明显的,有些时候甚至是致命的。
因为使用UDP协议来传送数据,在数据发送后,在发送方并不确认对方是否接收到。
这样就可能导致传送的数据在网络中丢失,尤其在网络条件并不很好的情况下,丢失数据包的现象就更多。
所以传送重要数据一般不采用UDP协议。
三、利用VB语言设计网络聊天系统
现在大多数语言都支持客户-服务器模式编程,其中VB给我们提供了很好的客户-服务器编程方式。
下面我用VB来实现TCP/IP网络编程。
TCP/IP协议是Internet最重要的协议。
VB提供了WinSock控件,用于在TCP/IP的基础上进行网络通信。
当两个应用程序使用Socket进行网络通信时,其中一个必须创建Socket服务器侦听,而另一个必须创建Socket客户去连接服务器。
这样两个程序就可以进行通信了。
3.1创建服务器端
首先创建一个服务端口号。
并开始侦听是否有客户请求连接。
建立一窗体,并向其增加一个Winsock控件(可在工程菜单中的部件项来添加此控件)添加两文本框Text1,Text2,和一按钮Command1
PrivateSubForm_Load()
SockServer.LocalPort=2000′服务器端口号,最好大于1000
SockServer.Listen′开始侦听
EndSub
PrivateSubForm_Unload(CancelAsInteger)
SockServer.Close
PrivateSubSockServer_Close()
PrivateSubSockServer_ConnectionRequest(ByValrequestIDAsLong)
SockServer.Close
SockServer.AcceptrequestID′表示客户请求连接的ID号
′当客户向服务器发送数据到达后,产生DataArrival事件,在事件中接收数据,GetData方法接收数据。
PrivateSubSockServer_Data
Arrival(ByValbytesTotalAsLong)
DimsAsString
SockServer.GetDatas
Text1.Text=s
当我需要向客户发送数据时,只需调用SendData方法。
PrivateSubCommand1_Click()
SockServer.SendDataText2.Text
3.2创建客户端
要创建客户连接服务器,首先设置服务器主机名,如IP地址、域名或计算机名,然后设置服务器端口,最后连接服务器。
建立一窗体,并向其增加一个Winsock控件(可在工程菜单中的部件项来添加此控件),取名为:
SockC1。
添加两文本框Text1,Text2,和一按钮Command1
SockCl.RemoteHost=′127.0.0.1″
′表示服务器主机名
SockCl.RemotePort=2000
′表示服务器端口名
SockCl.Connect
′连接到服务器
SockCl.Close
PrivateSubSockCl_Close()
PrivateSubSockCl_DataArrival(ByValbytesTotalAsLong)
SockCl.GetDatas′接收数据到文本框中
SockCl.SendDataText2.Text′向服务器发送数据
3.3进行通信链接
把这两个窗体分别编译成两个EXE文件,服务器Server.exe和客户Client.exe程序,并把它们分别安装在服务器端和客户端,这样就可以实现两者通信了
四、网络聊天软件的验证
1.首先输入主机名(IP地址)和自己的昵称。
图3
2.接着点击连接按钮和主机进行连接
图4
3.在发送栏里输入文字(ddd),点击发送。
图5
4.结束时点击断开即可。
UDP聊天软件验证成功。
总结
本文详细介绍了UDP协议,NetWinSockSDK提供给VisualB#用以操作UDP协议的主要类库,以及通过一个具体而使用的示例——实现一个网络聊天系统,介绍在VisualB#实现UDP协议的具体方法和过程。
UDP由于其自身的缺点注定在某些领域无法利用它,但在可以利用它的领域,UDP以其快捷、简单、实用的特点正在受到更多程序员的欢迎。
尤其在现代,网络运行态势越来越好的情况下,可以预见的是UDP在网络中的应用情景将更广阔。
希望本文的内容对您掌握用VisualB#编写基于UDP的网络应用程序有所帮助。
谢辞
经过几个月的努力,准备资料,查证资料、整理资料、编写论文,最后终于顺利的完成论文。
回首自己求学期间的点点滴滴,无数感慨涌上心头。
时光匆匆飞逝,三年多的努力与付出,随着论文的完成,终于给自的大学生活划下了句点。
通过此次的论文的写作,我学到了很多知识,跨越了传统方式下的教与学的体制束缚,在论文的写作过程中,通过查资料和搜集有关的文献,培养了自学能力和动手能力。
论文得以完成,离不开赵陈粟指导老师的悉心指导,在此真诚的感谢赵老师的无私帮助和关怀。
总之,此次论文的写作过程,我收获了很多,即为大学三年划上了一个完美的句号,也为将来的人生之路做好了一个很好的铺垫。
参考文献
参考资料:
《VisualBasic程序设计教程》何瑞麟科学出版社
《VisualBasic与Internet程序设计》黄嘉辉科学出版社
《VB6程序员指南》Microsoft;
《WindowsAPI参考手册》
《Windows高级编程指南》JeffreyRichter王书洪译
清华大学出版社
《计算机网络》;
《软件工程》
参考网站:
中国协议分析网
太平洋电脑网软件资讯频道
附录
1.服务器端
PrivateSubForm_Load()
Text
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 网络 聊天 系统 开发 设计 完整版 论文
![提示](https://static.bdocx.com/images/bang_tan.gif)