ImageVerifierCode 换一换
格式:DOCX , 页数:24 ,大小:138.46KB ,
资源ID:12582726      下载积分:1 金币
快捷下载
登录下载
邮箱/手机:
温馨提示:
快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。 如填写123,账号就是123,密码也是123。
特别说明:
请自助下载,系统不会自动发送文件的哦; 如果您已付费,想二次下载,请登录后访问:我的下载记录
支付方式: 支付宝    微信支付   
验证码:   换一换

加入VIP,免费下载
 

温馨提示:由于个人手机设置不同,如果发现不能下载,请复制以下地址【https://www.bingdoc.com/d-12582726.html】到电脑端继续下载(重复下载不扣费)。

已注册用户请登录:
账号:
密码:
验证码:   换一换
  忘记密码?
三方登录: 微信登录   QQ登录  

下载须知

1: 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。
2: 试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。
3: 文件的所有权益归上传用户所有。
4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
5. 本站仅提供交流平台,并不能对任何下载内容负责。
6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

版权提示 | 免责声明

本文(完整版基于winsock的局域网聊天室系统分析与毕业设计论文.docx)为本站会员(b****8)主动上传,冰点文库仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知冰点文库(发送邮件至service@bingdoc.com或直接QQ联系客服),我们立即给予删除!

完整版基于winsock的局域网聊天室系统分析与毕业设计论文.docx

1、完整版基于winsock的局域网聊天室系统分析与毕业设计论文北京联合大学-信息学院计算机网络实践报告木瓜Chat局域网聊天工具设计报告 组长(学号): 拉格木呷4 组员(学号): 高迪7 张鹤轩7 刘晓弟5 版 本 号: 1.0 时 间: 2015年1月8日 摘要 从实际应用系统的角度出发,以VB的网络技术为指导,结合现有软件的应用,编程实现基于Visual Basic的局域网络聊天工具。该聊天工具具有聊天室聊天,一对一聊天,以及文件传输的功能。该论文主要对当今主流的网络聊天软件的发展情况,与该软件相关的技术以及本设计的实现做一个详细的阐述: 1. 计算机网络聊天工具,受到了用户的普遍爱好,它

2、把人们带进了一个虚拟的网络世界,拉近了人们的距离。从单一的文本聊天,到语音聊天以及到现在的图像、视频聊天、及时短信的发送和在线游戏等功能的开发,已经大大的拓展了聊天工具的概念,它成为了人们通过因特网相互联系和娱乐的主要平台,这也是腾讯成功的原因。 2. 该聊天软件基于VB中的WinSock通信,在此基础上,实现一对一聊天、一对多聊天以及文件的传输。 3. 该聊天工具可以运行于任何安装了VB6.0和支持tcpip,upd,ftp协议的机器上。 4. 由于系统采用cs结构,客户端与客户端以及客户端与服务器端需要传送一些控制消息,因此系统需要自定义一些消息类型,这是该聊天工具的又一大关键之处。 5.

3、 文件传输作为另一个独立的模块,大大拓展了该聊天工具的功能,其传输资料利用了原有的WinSock通信,关键需要同步双方的发送和接受线程。 局域网通讯(Local Network,简称LNLNIM)是指能够即时发送和接收互联网消息等的业务。自2001年面世以来,特别是近几年的迅速发展,局域网通讯功能日益丰富,逐渐集成了电子邮件、博客、音乐、电视、游戏和搜索等多种功能。它不再是一个单纯的聊天工具,已经发展成集交流、资讯、娱乐、搜索、电子商务、办公协作和企业客户服务等为一体的综合化信息平台。是一种终端连往即时通讯网络的服务。它不同于e-mail在于它的交谈是即时的。大部分的即时通讯服务提供了状态信息

4、的特性显示联络人名单,联络人是否在在线与能否与联络人交谈。关键词:局域网、聊天工具、TCP、winsock第一章、需求分析 自1946年第一台计算机ENIAC诞生以来,计算机越来越走进人们的生活中,尤其是计算机网络的发展,把全世界人们的距离拉到一台电脑前,而今人们更是离不开计算机了。如今,作为网络应用之一的聊天工具,越来越受到人们的欢迎和重视。现在已有的聊天软件和聊天工具不胜枚举,流行的主要有QQ, MSN多玩YY和各种的网页聊天室等。这些软件以QQ和多玩歪歪聊天软件分为两个发展方向。目前,QQ的功能除了最基本的文本聊天,已经可以语音聊天,图像聊天,视频聊天,文件传输等三维聊天,还发展了短信发

5、送,无线聊天,在线游戏等功能。多玩歪歪的功能有一对一聊天,聊天室聊天,还有最具特色的多人语音聊天,在线游戏等等。聊天软件已经成为人们通过因特网相互联系和娱乐的主要平台。然而这些软件的一个共同的缺点是采用了cs的结构模式,如果服务器出现故障,或者连接不上网络,则这个聊天系统都将瘫痪或者登陆不上。该毕业设计课题为基于VB的聊天工具的设计与实现,它是在winsock通信和文本聊天的基础上来实现文件传输,合适局域网络中无宽带等连接或者连接不通畅是内部聊天交流之用。 目前国内外做聊天系统的公司很多,产品也琳琅满目,国内有诸如腾讯QQ、新浪UC、网易泡泡等,国外有著名的MSN以及跨平台Gaim等。取最具代

6、表性的QQ和MSN进行了一些研究,作为我开发聊天系统的准备。经济可行性:由于本系统的主要背景是毕业课程设计,不注重直接的经济效益和其后的发展方向,只在注重自身水平和能力的提高,对自身的经济要求也不高,只要有一台能运行VB软件的电脑便可,所以不用考虑到经济问题。 技术可行性: 它是一个支持多用户的新型数据库,适用于大中规模的数据量需求。学校校园网的建设也为新系统服务器客户端的结构提供了硬件的支持。使用VB作为系统开发的开发环境,它提供完善的指令控制语句、类与对象的支持及丰富的数据类型,给开发高性能系统提供的保障为开发满足客户要求的系统,保证了代码的模块化要求,而代码模块化的提高,非常有利于以后对

7、新系统的扩展与修改 随着计算机网络的迅速发展,人们的生活越来越离不开网络,如今网络编程已成为计算机发展的热点,而在众多的网络通信中,又以TCPIP协议最为流行。本文讨论的Winsock控件,提供了访问TCPIP网络的捷径,使用它可以不必了解TCPIP的细节和调用Winsock API,只要设置好相应的属性和触发事件后的处理,就可以实现计算机之间的数据通信。 本实验的目标是用Visual Basic语言设计一个基于TCPIP协议的点对点的聊天程序。 利用Visual Basic Winsock控件实现。程序写完后最终生成服务器和客户端两个可执行文件,打开服务器可执行文件,即运行服务器,然后客户端

8、可以不局域网上不同的主机上运行,输入服务器主机的IP,连接到服务器,客户端与客户端之间即可实现简易的聊天功能,在服务器可以显示在线人数以及客户端的IP地址。第二章、方案论证和比较1设计思想综述和解决问题的思路(1)系统理论基础 TCPIP的特点 TCPIP协议的核心部分是传输层协议(TCP、UDP),网络层协议(IP)和物理接口层,这三层通常是在操作系统内核中设计。因此用户一般不涉及。TCP是面向连接的,通信双方保持一条通路,好比目前的电话线,使用telnet登陆BBS,用的就是TCP协议;UDP是无连接的,通信双方都不保持对方的状态,浏览器访问Internet时使用的HTTP协议就是基于UD

9、P协议的。(2) Visual Basic Winsock控件简单介绍 本实验用到Visual Basic中一个比较新的控件,就是Winsock控件。它主要用于将Winsock接口简化成易于使用的Visual Basic内部接口。在这种控件问世之前,要想通过Visual Basic 进行网络程序设计,唯一的办法便是将所有Winsock函数都从DLL中导入(Import),然后重新定义必要的结构。但是这样的话,结构的数量就是很多,工作量也太大,且极易出错。Winsock控件问世之前,用Visual Basic进行网络编程就变得非常方便了。Winsock控件对用户来说是不可见的,它提供了访问 TC

10、P 和 UDP 网络服务的方便途径。为编写客户或服务器应用程序,不必了解 TCP 的细节或调用低级的 Winsock APIs。通过设置控件的属性并调用其方法就可轻易连接到一台远程机器上去,并且还可双向交换数据。(3)winsock使用方法 设计并实现基于WINSOCK的文本聊天程序包括聊天室聊天,一对一私聊,涉及的内容包括通信方式的选择,及选择会话方式是资料报还是建立连接方式,WinSock通信,身份验证和群组名验证,建立服务器,连接服务器等;设计并实现基于WinSock的语音聊天,文件传输,涉及的内容包括通信方式的选择,文件传输技术等内容。Windows下网络编程的规范Windows So

11、ckets是Windows下得到广泛应用的、开放的、支持多种协议的网络编程接口。从1991年的1.0版到1995年的2.0.8版,经过不断完善并在Intel、Microsoft、Sun、SGI、Informix、Novell等公司的全力支持下,已成为Windows网络编程的事实上的标准。 任何能够与Windows Sockets兼容实现协同工作的应用程序就被认为是具有Windows Sockets接口。我们称这种应用程序为Windows Sockets应用程序。Windows Sockets规范定义并记录了如何使用API与Internet协议族(IPS,通常我们指的是TCPIP)连接,尤其要指

12、出的是所有的Windows Sockets实现都支持流套接口和数据报套接口.应用程序调用Windows Sockets的API实现相互之间的通讯。Windows Sockets又利用下层的网络通讯协议功能和操作系统调用实现实际的通讯工作。 WinSock控件能够通过UDP协议(用户数据报协议)或TCP协议(数据传输协议)连接到远程的机器并进行数据交换。这两种协议都能用来创建客户端和服务端应用程序。就像定时器控件一样,WinSock控件运行时没有一个可视的界面。(4)TCPIP协议简介 TCPIP协议实际上就是在物理网上的一组完整的网络协议。其中TCP是提供传输层服务,而IP则是提供网络层服务。

13、TCPIP主要包括以下协议: IP:网间协议(Internet Protocol) ,负责主机间数据的路由和网络上数据的存储。同时为ICMP,TCP,UDP提供分组发送服务。用户进程通常不需要涉及这一层。 ICMP:网间报文控制协议(Internet Control Message Protocol)此协议处理网关和主机的差错和传送控制。 TCP: 传输控制协议(Transmission Control Protocol)这是一种提供给用户进程的可靠的全双工字节流面向连接的协议。它要为用户进程提供虚电路服务,并为数据可靠传输建立检查。2方案的确立 客户端使用简便,服务器端运行稳定。客户端与服务

14、器端可运行在多种系统平台,具有良好的兼容性能。 客户端与服务器端功能独立,可独立运行在不同的计算机上或运行在同一台计算机上,具有最大的灵活性。 3、具体软件功能 根据任课教师的要求及自己的编程能力,写出以下的功能: 1、提供基本的文本编辑功能,使用户可以方便的编辑要发送的信息。2、能够将编辑好的文本信息,利用Winsock控件发送到局域网中指定IP地址的设备上。3、能够显示通过Winsock控件接收到的信息,并利用IP地址(或用户名)加以区分。4、实现点对点和广播信息的发送功能。5、设计一个良好的人机交互环境。 4、小组分工 学号姓名分工4拉格木呷程序操作,编写代码,程序测试5刘晓弟文档制作,

15、材料收集,报告制作7高迪文档制作,材料收集,调试程序,7张鹤轩文档制作,材料收集,程序测试第三章、系统分析与设计1 软件界面设计如下网络通信协议的基础和选择 TCP(数据传输协议)基础 数据传输协议允许创建和维护与远程计算机的连接。连接两台计算机就可彼此进行数据传输。 如果创建客户应用程序,就必须知道服务器计算机名或者 IP 地址(RemoteHost 属性),还要知道进行“侦听”的端口(RemotePort 属性),然后调用 Connect 方法。 如果创建服务器应用程序,就应设置一个收听端口(LocalPort 属性)并调用 Listen 方法。当客户计算机需要连接时就会发生 Connec

16、tionRequest 事件。为了完成连接,可调用 ConnectionRequest 事件内的 Accept 方法。 建立连接后,任何一方计算机都可以收发数据。为了发送数据,可调用 SendData 方法。当接收数据时会发生 DataArrival 事件。调用 DataArrival 事件内的 GetData 方法就可获取数据。选择通讯协议 在使用 WinSock 控件时,首先需要选择使用什么协议。可以使用的协议包括 TCP 和 UDP。两种协议之间的重要区别在于它们的连接状态: TCP 协议是有连接的协议,可以将它同电话系统相比。在开始数据传输之前,用户必须先建立连接。 UDP 协议是一种

17、无连接协议,两台计算机之间的传输类似于传递邮件:消息从一台计算机发送到另一台计算机,但是两者之间没有明确的连接。另外,单次传输的最大数据量取决于具体的网络。 通讯协议的选择是通过设置WinSock的Protocol属性来实现的。在这里我选择的是使用TCP通讯协议编写聊天程序,通过编写程序。2、该软件的开发过程基本可以分为三个阶段: 第一阶段就是对VB6.0的学习,花费三周时间学习VB编程环境,VB的语法。学习WinSock控件的过程中,做出最简单的服务器客户模式的聊天程序。第二阶段就是软件的设计与实现。在原有的基础上增加了文件的传输功能,并且对界面做了改进。从这也可以说,该软件的总体开发模式采

18、用原型演化的开发模型,因为这个项目只是个人开发,而且先前对有些知识不是很了解,所有这些都是采用原型开发的必然因素。现在该项目已经基本上完成了所有的要求。 第三阶段就是剩下的时间对软件进行测设与界面的最后优化,使VB单调的界面尽可能的人性化。3、Visual Basic简称VB,是由美国微软公司于1991年开发的一种可视化的、面向对象和采用事件驱动方式的结构化高级程序设计语言,可用于开发 Windows 环境下的各类应用程序。它简单易学、效率高,且功能强大可以与 Windows 专业开发工具SDK相媲美。在Visual Basic环境下,利用事件驱动的编程机制、新颖易用的可视化设计工具,使用Wi

19、ndows内部的广泛应用程序接口(API)函数,动态链接库(DLL)、对象的链接与嵌入(OLE)、开放式数据连接(ODBC)等技术,可以高效、快速地开发Windows环境下功能强大、图形界面丰富的应用软件系统。 第四章、重点问题和难点问题的分析程序的关键点在于,要对整个TCPIP通信过程有深入了解,要熟悉Microsoft Visual Basic中Winsock控件及其编程,熟悉基于消息的异步套接字,熟悉VB各个控件的操作包括相关的事件、方法以及属性等。网络编程大多数网络应用程序都遵从clientserver交互模型。该模型中,服务器应用是一种专门用来提供某一种服务的程序,它被动地等待通信,

20、而客户应用主动地启动通信,请求服务器的服务。服务器程序既可以接收信息也能发送信息,还可以成为客户。 TCPUDP赋予每个服务一个唯一的协议端口号。服务器程序通过协议端口号来指定它所提供的服务,然后被动地等待通信。客户在发送连接请求时,必须说明服务器程序运行主机的IP地址和协议端口号来指定它所希望的服务。服务器端计算机通过此端口号将收到的请求转向正确的服务器程序。 大多数网络编程语言都提供或者使用控件封装了套接字应用程序接口(Socket API),应用程序通过套接字接口调用来实现和传输层交互。用户目前可以使用两种套接口,即流套接字TCP和数据报套接字UDP。流式套接字定义了一种可靠的面向连接的

21、服务,提供了双向的,有序的,无重复并且无记录边界的数据流服务。数据报套接字定义了一种无连接的服务,支持双向的数据流,但并不保证是可靠,有序,无重复的。也就是说,一个从数据报套接字接收信息的进程有可能发现信息重复了,或者和发出时的顺序不同。数据报套接字的一个重要特点是它保留了记录边界。第5章、系统实现系统的设计与实现 1 实现原理Winsock控件可以使用两种协议:TCP协议和UDP协议。TCP协议即数据传输控制协议,它允许创建和维护与远程计算机的连接,使其彼此可以进行数据传输。利用TCP协议通讯必须分别建立客户应用程序和服务器应用程序。在创建客户应用程序时,必须知道服务器计算机名或其IP地址(

22、存于RemoteHost属性)及服务器计算机进行侦听的端口(存于RemotePort属性),然后调用Connect方法。创建服务器应用程序时,应相应设置一个侦听端口(Local2Port属性)并调用listen方法。当客户机需要连接时(con2nect),就会发生ConnectionRequest事件,为了能够实现连接,可以在ConnectionRequest事件中调用Accept方法。建立连接后,任何一方计算机都可以发送、接收对方数据。如果要发送数据,需调用SendData方法。当接收到数据时,会发生DataArrival事件,在DataArrival事件中调用GetData方法就可以获得对

23、方传送的数据。UDP协议也称为用户数据报文协议,是一个无连接协议。利用此协议连接时,不必象TCP协议那样,需要服务器端侦听,客户机端请求连接,服务器端建立连接后双方才能通信。另外,UDP应用程序可以是客户机,也可以是服务器程序,而不必像TCP应用程序那样必须分别建立客户机程序和服务器程序。(1)首先运行服务器,运行结果如图所示。首先在计算机上要安装有VB6.0软件,然后用VB打开服务器工程运行后,再用VB打开对聊的工程并运行。登陆的界面如下,需要输入主机地址。(2)输入聊天对象的的IP地址和自己的昵称户名,即可在登陆界面中使用你的用户名登陆聊天软件。在登陆之前首先要确定服务器端是够已经打开。在

24、服务器开始运行后,即可连接到服务器。服务器运行后,按Ctrl+F12即可打开服务器的界面。(3)点击进入聊天室即可聊天。进入私聊的方法:,在右边的所有邻居中点选你要进行二人聊天的用户,单击菜单的下拉菜单, 点击二人世界,即可进入。进入二人世界,可以是一个人进入也可以两人都进入,一个人在聊天室,一个人进入二人世界后,在二人世界发的内容另外一人会收到XX悄悄的对你说:XX的内容。但是回复还是要进入二人世界。二人私聊的内容别人看不见,服务器默认是不显示。在服务器的系统设置中,打开记录密谈就可以看到二人密聊的内容1 系统的功能 服务器端 客户端:登陆界面:输入姓名和密码还有服务器IP地址连接服务器并转

25、入聊天界面 点对点聊天 聊天室聊天 文件发送:在二人连接的条件下,进行文件传输。 2 服务器端编程 利用 WinSock 控件可以与远程计算机建立连接,并通过用户数据文报协议 (TCP) 或者传输控制协议 (TCP)进行数据交换。这两种协议都可以用来创建客户与服务 器应用程序。与 Timer 控件类似,WinSock 控件在运行时是不可见的。第六章、系统的测试功能测试覆盖各子系统中的功能模块,本测试针对在现有产品功能模块以及实施结果分别进行测试,测试整个系统是否达到需求规格说明书中要求实现的功能,以及测试系统的易用性、用户界面的友好性。 系统测试包括系统的易用性、可靠性、安全性、可维护性进行测

26、试,整个系统集成后提供服务的能力,还包括系统服务性能测试、疲劳测试(不间断运行)在测试过程中,测试人员充分理解业务需求,并按照项目的测试计划,准备了充足的测试环境和资源,根据项目的需求规格说明书对项目的设计、安装、实施结果进行了测试,并对系统的安全性、可靠性、易用性、可维护性和系统性能进行了测试。经过对测试结果进行分析,项目的设计和实施达到了项目需求规格说明书中要求的能力,可以进入项目的下一阶段。项目的开发和实施虽然满足了当前业务的功能和性能要求,并实施了相应的系统安全、备份等方案,随着系统的运行和后期工程的投入生产,在现有系统软件硬件条件下,可能会给系统带来一定的压力,所以在后期工程的开发过

27、程中,随时要兼顾一期工程的可能存在的性能优化和功能调整,以及系统在安全、备份方面加大资源投入力度,保证系统达到7x24小时稳定、可靠运行的要求 第七章、小结通过本次试验首先了解了winsock控件的使用以及VB程序设计语言的开发环境的使用。在开发过程中的团队合作的精神。在这几天短暂的实训课中,学习了winsock的使用,并在VB的编程环境下实现了局域网聊天工具。通过这几天实验,了解并学会了使用winsock,通过大家的努力合作,加强了我们的合作意识。经过本次实训,使用陌生的VB编程环境实现了聊天室软件的运行,实现了局域网聊天,成就感很强。通过这次课设,使我对网络的TCPIP协议和网络中实现主机

28、之间的相互通信的方法有了一定的了解和体会。通过这次编程,也加深了对网络编程特别是WinSock编程的理解。同时对VB的一些编程技术的实现也有了更深入的了解。学到了到底一些功能要用哪些规定的函数来实现,以及在用这些函数的时候要注意哪些东西,比如说,要引用规定的函数包,设定规定的变量、组件,并且在引用的时候需要注意的东西等。 。现在发现这个软件非常简单,最重要的是非常实用,它带有大量的函数库,当你要用某个函数的时候会发现它自己可以弹出来给你选择,除此之外,你还可以自己改动它的相关东西,完全可以按着自己的想法来做。 而这次课设的最大收获应当属于被迫重新写了下程序,真的是让我收获巨大,一开始因为同学比

29、较懂java这个东西,因而我都是看着同学把主要程序写完了,我只是在提建议,指出哪里写成什么样子会比较好,而自己却没有写任何的程序。现在,看着自己新写的程序,回想着写的过程,才发现老师的用心,真的很感谢老师。很多程序看着简单,认为写起来也很简单,认为这样写就可以了,只要懂就行了,写起来马上就可以搞定。可是到了自己写的时候才发现,这个那个怎么写,老是不知道,于是要查来查去的,弄的非常狼狈、糟糕。不过不管怎么样,总算是写好了。我想老师也是为了让我学到自己想要的东西吧。看别人的东西,看得再多,看的懂,但是自己不动手去写的话,是学不到什么东西的,时间一过就什么都没有留下,只有自己动手去做了,才能够记住东

30、西,才能够把它转化为自己的东西。这次课设做的可能不是很顺利,但是反观自己,却发现这个过程真的是值得付出的。还有,真的很感谢老师的用心 参考文献:1用Winsock实现聊天室EBOL. ExplicitDim flag As Boolean 注释:连接状态变量Private Sub Cmd3_Click() Text1.Text = Text2.Text = Frame2.Visible = False wsk1.Close Text2.Text = Text3.Enabled = True Comd2.Caption = 进入聊天室 StatusBar1.Panels(4) = 等待连接 Ti

31、mer1.Enabled = False Comd2.MousePointer = 0 Form1.MousePointer = 0End SubPrivate Sub Comd2_Click() Dim HostIP As String 条件判断 If Text3.Text = Then MsgBox 请输入昵称!, , 信息提示 Exit Sub End If If Option2(0).Value = True Then HostIP = Text4.Text 连接的主机IP Else If Option1(0).Value = True Then HostIP = 10.11.64.71 连接的主机IP,用户可以更改此处IP If Option1(1).Value = True Then HostIP = 10.11.64.224 If Option1(2).Value = True Then HostIP = 10.11.64.56 End If Text2.Text = Text3.Enabled = False StatusBar1.Panels(4) = 正在连接. 状态栏显示内容 Comd2.MousePointer = 11 鼠标指针样式 Form1.MousePointer =

copyright@ 2008-2023 冰点文库 网站版权所有

经营许可证编号:鄂ICP备19020893号-2