编辑: ZCYTheFirst 2019-09-12
综合课程设计报告 基于UDP协议的聊天系统设计 学生姓名: 指导教师:董尼所在系:电子系 所学专业:电子信息工程 年级: 20xx年 x月 x日 基于UDP协议的聊天系统设计 目录 摘要

第一章 引言 1.

1课题研究的目的 1.2 课题研究的意义

第二章 系统分析与总体设计 2.1系统分析 2.2 系统总体设计

第三章 实验实验原理和主要是想. 3.1数据库模块设计. 3.2 UDP模块设计.

第四章 实验模块设计及功能 4.1数据库的使用. 4.2 UDP模块设计 总结参考文献 致谢附录…

第一章 引言 摘要 网络设计与实践旨在普及本专业学生网络基础知识与网络应用、管理、维护与开发等基本技能,加强网络教学的实践环节,培养学生对网络的实际应用能力.经过实训,掌握网络的基本连接方法、Internet基本服务配置、Intranet技术、交换机与路由器等网络设备的使用与基本操作及Visual Basic的应用等. 1.1实验目的 掌握UDP协议,理解协议的深意,学习VB的编程方法及数据库的一些应用 1.2实验原理 不论您使用UDP协议或是TCP协议,Winsock控件都可以允许与远程的设备连接,并且在相互之间交换数据.因此,依据上面的面熟而言,不论您使用的是哪一种协议都可以扮演主机端和客户端的角色. 同时,当您在使用Winsock控件的过程中,这个控件不会显示在正在执行的窗体之中.换句话说,Winsock控件是在后台运行的一种控件.在执行过程之中,不会具有任何选用、可见的控件.

第二章 系统分析与总体设计 2.1使用VB控件的介绍 1.winsock 2.label 3.commandbutton 4.textbox 5windowsmediaplayer 6.commondialog 2.2 winsock控件的介绍 1.Winsck控件的主要属性 属性名 说明 BytesReceived 返回接收的数据,可以用GetData方法来获取它 LocalHostName 返回本机名 LocalIP 返回本机IP LocalPort 返回或设置本机所用的端口,如果为0则为随机产生 Protocol 返回通信所用的协议 RemoteHostName 返回通信对方的计算机名 RemoteHostIP 返回通信对方的IP State 返回Winscok的当前状态,取值如下 sckClosed(常量为0):关闭状态 sckOpen(常量为1):打开状态 sckListening(常量为2):侦听状态 sckConnectionPending(常量为3):连接状态 sckResolvingHost(常量为4):解析主机中 sckHostResolved(常量为5):已解析主机 sckConnecting(常量为6):正在连接 sckConnected(常量为7):已经连接 sckClosing(常量为8):客户端正在关闭 sckError(常量为9):连接发生错误 2.Winsock的主要方法: 方法名 作用 listen 使服务器程序处于侦听状态,等待客户端的连接请求 connect 用于客户端向远程发送一个连接请求,语法:Winsock.connect [IP,Port] Accept 用于服务器接收一个远程客户端的连接请求,语法:Winsock.Accept requestID sendData 用于向远程发送数据,语法:Winsock.sendData 数据 getData 用于接收远程发送来的数据,语法:Winsock.getData 变量 Close 关闭通信 3.Winsock的主要事件: 事件名 说明 Connect 当服务器接收客户端请求时,服务端发生的事件 DataArrival 有数据到达时发生的事件,可以在这个事件中来getData发送来的数据 ConnectionRequest 客户端用Connect方法时服务器发生的事件,可以在这个事件中来Accept一个连接请求 SendProgress 发送数据中发生的事件,可以在这个事件中来标示当前已经发送多少数据 SendComplete 发送数据完成发生的事件 Error 通信发生错误时发生的事件 Close 关闭通信时发生的事件

第三章 实验实验步骤和主要是想 3.1实验步骤 如何选用适用的协议 当您准备开始使用Winsock控件之前,首要的工作是如何选择适用的协议类型.如同先前所述的,您可以选择TCP 协议或是UDP协议中的一种.但是这两种协议的差异点在哪里呢?虽然,它们同样可以使用在Internet或是Internet环境之中,但是主要的差异在于连接的状态.以下是这两种协议的特点说明: TCP协议是属于面向连接的协议.所谓的面向连接协议是指―― 在您可以交换数据之前,在两个终端设备之间必须连接成功 .同时,在网络的基础理论之中,都会特别强调TCP具有错误核对的功能.也就是说,在数据的传送过程中,如果发生错误或是数据无法传达对方时,TCP协议将会重复尝试着重新传送数据.因此,核对以及重新传送的能力,因此起传输效率会比Internet协议或是巨域网络协议差一些(netBIEUI、IPX、AppleTalk). UDP协议是属于无面向连接协议.这种协议为适用在两个设备之间,适用于信息传送以及数据的传输方面.但是在使用时,必须注意当你将信息送出时,对方可能已经离线,因而无法接收到数据,而您也无法实时察觉到对方已经离线.此外,使用UDP协议的最大数据传送量,完全取决于网络的传输量.因此,此种协议较为适用于局域网络. 因此,当您在建立应用程序并且选用适当的协议之前,务必先依据应用程序使用的环境来选择适用的协议. UDP连接的基础 在 建立UDP的应用程序时,其过程会比TCP协议简单许多.这是由于UDP协议在数据传送之前,可以不需要特别明确的连接方式.但是,在上述的TCP连接方式之中,Winsocke控件必须设置在 监听(Linsten) 状态之下,同时在客户端准备与主机进行连接时,主机端也必须要使用Accept方法来允许客户端所要求的连接. 反观在UDP协议方面,双方仅仅需要使用Bind方法,即可与对方连接并且传输数九,因此,UDP协议连接过程的处理方式确实比TCP简单许多.下面介绍使用UDP协议来传送信息的过程. Winsock控件的作用简单说就是可以用于两台或多台机器间通信,这里不多说这个控件的作用了,因为在以后的介绍中我们会了解到这个控件的强大功能的,如可以用来做聊天软件等…… 废话不多说,来看看他有些什么重要的属性、方法和事件吧! 在VB6.0中的工具箱里默认情况下是没有这个控件的,添加方法如下:在工具箱上右击,选择[部件],然后在部件对话框中选择 Microsoft Winsock Control 6.0 ,后确定即可.如果没有这个复选框的话,请点击[浏览]按钮后在打开的[添加ActiveX控件]对话框选择MSWINSCK.ocx后选择打开,再点确定即可.

第四章 实验模块设计及功能 4.1数据库的使用 数据库的还原及备份: 1.新建数据库: 新建数据库:命名为 yonghu 打开数据库的表: 新建表命名为 yonghu 如图:写入一行内容方便写程序 4.2 UDP模块设计 4.2.1实验设计主要是想 当本机登录聊天模块时,怎么知道远程计算机是否在线! (1)、应用端口号来判断 就是winsock绑定端口,然后发送信息给对方,对方通过发过来的信息的远程端口号,判断该执行那些命令,然后让软件自动的发送文件给对方!比如登录界面绑定个winsock端口,登录时像整个局域网发送信息,对方接受登录发来的信息,告诉自己上线机子,同时判断发送过来的远程端口,如果端口是登录发来信息的端口,那么就自动回馈个信息各对方告诉他我也在线! (2)、应用数据库来判断: 在数据库中建立表格两行,第一列为默认用户名 xxx ,第二列为 ip地址 .当自己上线时,向局域网广播自己的ip地址及用户名,本机将在数据库中添加本机ip地址,默认用户名 xxx ,当登录之后会定时向局域网广播自己的ip地址(时间为1ms).远程计算机进行判断,第一次广播在线后,远程计算机将在数据库中添加本机的ip地址,本机第二次广播后,远程计算机将收到的ip地址与数据库中的内容进行比较,存在跳出sub,不再多次显示在线,不存在显示一次并保持与存入数据库.到本机下线时,远程计算机将删除数据库中的本机ip地址,而本机将删除所有ip地址. 4.2.2实验方案一模块设计图 1.实验方案一(应用端口号的模块) (1)、登录模块图 (2)、发送接受模块图 (3)、提示模块图 2.实验方案二(应用数据库的模块) (1)、登录模块图 (2)、登录后的窗体 (3)、发送接受模块图 总结 经过几天的学习,研究和开发,我们小组选择的课题基本完成.其功能基本符合网络实训的要求,能够查询课程,添加课程,修改课程等.虽然由于自己知识上的不足,有些地方有少许错误和容错性能比较低,功能还不够完善,但是还是可以基本完成课程开设系统应有的功能. 在实训过程我会到了许多知识,这也是在大学里第一次比较完整的完成一个小项目,虽然过程中遇到了许多困难,在同学和老师的帮助下一一克服了.通过不断的发现问题,总结问题和解决问题的过程,使我在此次实训设计活动中不断的提高,和得到了宝贵的经验. 参考文献 刘兵.计算机网络概论.中国水利水电出版社 何玉洁 麦中凡.数据库原理及应用.人民邮电出版社 龚沛曾 杨志强 陆慰民. Visual Basic程序设计教程. 高等教育出版社 明日科技 高春艳 李俊民 刘斌斌. Visual Basic程序开发范例宝典. 人民邮电出版社 致谢 这是我们的第最后一次参加实训了,但这门课程实训给我们提供了许多在今后的工作,提供了很好的基础.所以我很感谢学校对我们的重视,给我了这次实训的机会和良好的实训环境.在这次实训中,我们小组在组长的带领下,积极工作,各尽所能,顺利的完成了实训任务.在这里,对其他同学的努力,也是不得不提的,大家都是在自己负责的部分,兢兢业业,非常认真.所以,我们才能得到最后的成功. 一个星期的时间很快过去了,虽然董老师为了我们能够更充分的准备给了我们一个月的时间去准备,但是我们一直都是看资料准备,真正动手去做是在这短短的一个星期的时间.在这次实训的整个完成过程中,我们过的非常充实和有收获,组长带着我们从看教学视频了解UDP和数据库到看例子了解实践去做,虽然系统并不是非常的完满,但是让我们了解了的知识是丰富的. 在此一定要感谢董老师,是他对我们的严格要求锻炼了我们自己去动手去尝试,解决问题的能力,让我们获益匪浅.只有自己动手试出来的,才真正是自己的.我们的组员也非常团结,认真对待组长分给我们的任务,我们也从中懂得了团队精神的重要性. 很快我们就要大四了,这个学期的实训可能将是我们大学四年的最后一次实训,我们相当重视、珍惜这次机会,而这次实训的结果将是我们今后我们工作、学习中遇到新的、不会的问题可以从容不迫的面对的一个重要基石,促进我们不断前进. 附录 方案一代码(应用端口号) (1)、登录模块代码 Private Sub Command1_Click() Dim data As String Dim s As String data = 用户: + Text1.Text + IP: + Me.Winsock1.LocalIP Me.Winsock1.RemoteHost = 172.16.255.255 Me.Winsock1.RemotePort =

4601 Me.Winsock1.SendData data Me.Winsock1.RemoteHost = 172.16.255.255 Me.Winsock1.RemotePort =

4700 Me.Winsock1.SendData data s ........

下载(注:源文件不在本站服务器,都将跳转到源网站下载)
备用下载
发帖评论
相关话题
发布一个新话题