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

加入VIP,免费下载
 

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

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

下载须知

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

版权提示 | 免责声明

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

基于WINSOCK的聊天系统论文.docx

1、基于WINSOCK的聊天系统论文摘 要作为计算机网络应用之一的聊天工具,受到了用户的普遍爱好,它把人们带进了一个虚拟的网络世界,大大地加深了人们之间的联系。从单一的文本聊天,到语音聊天以及到现在的图像、视频聊天、及时短信的发送和在线游戏等功能的开发,已经大大的拓展了聊天工具的概念,它将会作为未来人们通过因特网相互联系和娱乐的主要平台。从实际工程应用角度出发,以计算机网络原理为指导,结合当前网络中的一些常用技术,本系统实现了一个网络聊天工具,该聊天工具具有聊天室聊天、广播聊天以及二人私聊等功能。本论文主要对该聊天软件相关的各种技术以及该聊天工具的实现做了一个详细的阐述:1、该聊天工具的开发主要使

2、用了visual c+等开发工具。2、该聊天工具可在Win9x/Me/NT/2000/XP等环境下运行。3、该系统分为登录子系统、底层通信子系统、聊天子系统、服务器管理子系统等几个模块.4、该聊天工具任何一端都可以作为服务器,也可以是客户端。对于一个已创建好的服务器,在没有连入因特网的局域网内也可以相互通信。5、该聊天软件基于WINSOCK实现了一对一聊天、一对多聊天。6、该聊天工具用到了多线程的设计,因此线程之间的同步是一大关键之处。7、由于客户端与客户端以及客户端与服务器端需要传送一些控制消息,因此系统需要自定义一些消息类型,这是该聊天工具的又一大关键之处。关键词: Winsock网络通信

3、 聊天 一对一通信 visual c+6.0 ABSTRACTThe chatting tool, which is one of the applications of the computer network, becomes the favorite of major users, which brings users into a virtual network world and greatly adds up the relations of users. From former single text chatting, to sound chatting, and the de

4、velopment of the image, video chatting, transporting note in time and gaming on net, these has greatly adds up the conception of the chatting tools, which will be the main flat roof of users relating and entertainment by internet.In the opinion of practical engineering and guided by computer network

5、 principal and taking some common network technical. The softwares functions include broadcasted chat、point to point private chat. This article is main particular expatiate about the development of today chatting software、the technical of chatting software and the designing, programming of the softw

6、are for chatting tool: 、The development of the chatting tool mainly takes advantages of the visual c+.、This software may in Win9x/Me/NT/2000/Under the XP environment moves.、This system divides into registers the subsystem, the first floorcorrespondencesubsystem, chats the subsystem, the room managem

7、entsubsystem and so on several modules4、Should chat tool any end all to be possible to take the server, alsomay be the client side. Regarding already the server which founds, inhas not linked enters the Internet in the local area network also tobe possible to correspond mutually.、The software is bas

8、ed on the communication of the WINSOCK implementing the one to one chatting broadcasting chatting and the one to many chatting.、The software has a multiple threads, therefore the synchronization of the threads is a key point.、It is necessary that transport control information between client and clie

9、nt, client and server. So it is another key point that the software defines many types of information itself.KEY WORDS : Winsock network communication, Chatting, Implementing the one to one chatting, visual c+6.0目 录摘 要 IABSTRACT II第一章 绪 论 - 2 -1.1 开发背景 - 2 -1.2 对已有聊天软件的分析 - 2 -1.3 项目开发的主要内容 - 2 -1.4

10、 项目开发的意义 - 3 -1.5 项目开发的过程 - 3 -第二章 系统分析 - 4 -2.1 系统有关的技术 - 4 -2.2 系统方案说明 - 6 -2.3 系统任务概述 - 7 -2.4 系统其他要求 - 7 -第三章 系统设计 - 8 -3.1 系统的硬件环境 - 8 -3.2 系统的模块结构 - 8 -第四章 系统实现 - 11 -4.1 功能规定 - 11 -4.2 系统数据结构设计 - 12 -4.3几个主要的线程的程序设计 - 13 -第五章 总结 - 25 -致 谢 - 27 -参考文献 - 28 -第一章 绪 论1.1 开发背景自从上世纪中叶第一台计算机诞生以来,计算机越

11、来越走进人们的生活当中,特别是随着计算机网络的发展,把全世界的人们紧密的联系在一起,大大的扩展了计算机的功能,人们越来越离不开计算机了。如今,作为网络应用之一的聊天工具,越来越受到人们的欢迎和重视。现在已有的聊天软件和聊天工具不胜枚举,流行的主要有QQ,ICQ,MSN Message, NetMeeting,Popo、新浪UC和各种各样的网页聊天室等。这些软件中特别是QQ升级很快,其功能越来越强大,将代表着聊天软件的发展方向。目前,聊天软件的功能除了最基本的文本聊天,已经可以语音聊天,图像聊天,视频聊天,文件传输等三维聊天,还发展了短信发送,无线聊天,显示对方IP,在线游戏等功能,可以预见,在

12、不久的将来,聊天软件将成为人们通过因特网相互联系和娱乐的主要平台。然而这些软件的一个共同的缺点是采用了c/s的结构模式,如果服务器出现故障,则这个聊天系统都将瘫痪。该毕业设计课题从一开始就要求该聊天软件能够自建服务器,它能够被应用在一个个独立的自治的系统中,灵活性很大。1.2 对已有聊天软件的分析如今,聊天软件种类繁多,发展迅速。下面简要的对已有的聊天软件作一下总结分析:1、功能分析作为如今流行的聊天软件之一的QQ,其功能已经非常强大,基本上朝着三个大的方向发展,即个人及时通信,企业实时通信和娱乐资讯。它的功能主要有:个人文本聊天 个人语音聊天 个人视频聊天图像传输 文件传输 在线游戏手机通讯

13、 聊天室聊天 隐身,上线群聊天 企业级实时通信 显示对方IP可以看出,聊天软件的发展方向是三维化,人性化,综合化。2、网页聊天室作为另一种聊天软件形式,网页聊天室也受到用户的普遍欢迎。网页聊天室的优点就是很好的利用了浏览器的功能,用户不需要安装任何新的软件,即可加入聊天室聊天。现在的网页聊天室除了文本聊天之外,语音聊天也很常见。由于其客户端的简化,其功能必然受到限制。3、缺陷不管是QQ,还是网页聊天室,其最大的缺陷就是服务器固定,用户必须连接上服务器。如果想在一个自治系统之内(一个孤立的网络)通信,NetMeeting是一款不错的软件。本项目的开发目标也是如此,即追求服务器的灵活性,任何用户都

14、可以建立自己的服务器。1.3 项目开发的主要内容设计并实现基于WINSOCK的文本聊天程序包括广播聊天,二人私聊,涉及的内容包括通信方式的选择, 及选择会话方式是报文还是建立连接方式,Winsock通信,身份验证和服务器验证,建立服务器,连接服务器以及Vc接口实现等涉及的内容包括通信方式的选择外,还有多播与广播,多线程等内容。1.4 项目开发的意义本项目是作为本科的毕业设计课题提出来的,它规模适中,适合于个人开发,能够锻炼我们学习新知识的能力,锻炼我们的编程能力,锻炼我们的软件工程的思维方式。它的具体意义见下面:聊天工具已经被广大用户使用,由于服务器固定的局限性,当服务器瘫痪或到服务器的网络中

15、断时,将使聊天系统崩溃,该聊天工具正好弥补了这个缺陷,可以用于任一个自治系统中,灵活性大,实用性强。目前,计算机的发展离不开网络这一方向,网络将大大扩展计算机的功能,研究计算机在网络方面的技术以及应用,挖掘计算机的网络潜能,将能够大大提高我们对计算机的本身的认识,同时也能加深对计算机网络的认识。网络的一大应用就是用于用户之间联络的聊天工具,通过对聊天工具的开发,我们将了解计算机如何通过网络相互通信以及在此相互通信的基础上实现的应用程序级的协议。1.5 项目开发的过程 该项目的开发过程大致是这样的,可以分为三个大的阶段:第一个阶段是该软件的计划,分析和调研阶段,在这个阶段里,大致的学习了相关的技

16、术,了解、分析了相关的聊天软件的性能和功能。第二阶段就是软件的设计与实现。该软件的需求分析与初步设计以及实现阶段,这是该软件的第一个模型。对软件的结构进行改进的阶段,这是该软件的第二个模型。从这也可以说,该软件的总体开发模式采用原型演化的开发模型,因为这个项目只是个人开发,而且先前对有些知识不是很了解,所有这些都是采用原型开发的必然因素。现在该项目已经基本上完成了预定要求。第三个阶段是软件的测试和文档整理阶段。完成对软件的所有的功能的测试,并且整理软件的文档,完成论文。第二章 系统分析2.1 系统有关的技术2.1.1 Visual C+开发数据库技术的特点Visual C+提供了多种多样的数据

17、库访问技术ODBC API、MFC ODBC、DAO、OLE DB、ADO等。这些技术各有自己的特点,它们提供了简单、灵活、访问速度快、可扩展性好的开发技术。1. 简单性 Visual C+中提供了MFC类库、ATL模板类以及AppWizard、Class Wizard等一系列的Wizard工具用于帮助用户快速的建立自己的应用程序,大大简化了应用程序的设计。使用这些技术,可以使开发者编写很少的代码或不需编写代码就可以开发一个数据库应用程序。2. 灵活性 Visual C+提供的开发环境可以使开发者根据自己的需要设计应用程序的界面和功能,而且,Visual C+提供了丰富的类库和方法,可以使开发

18、者根据自己的应用特点进行选择。3. 访问速度快 为了解决ODBC开发的数据库应用程序访问数据库的速度慢的问题,Visual C+提供了新的访问技术OLE DB和ADO,OLE DB和ADO都是基于COM接口的技术,使用这种技术可以直接对数据库的驱动程序进行访问,这大大提供了访问速度。4. 可扩展性 Visual C+提供了OLE技术和ActiveX技术,这种技术可以增强应用程序的能力。使用OLE技术和ActiveX技术可以使开发者利用Visual C+中提供的各种组件、控件以及第三方开发者提供的组件来创建自己的程序,从而实现应用程序的组件化。使用这种技术可以使应用程序具有良好的可扩展性。5.

19、访问不同种类数据源 传统的ODBC技术只能访问关系型数据库,在Visual C+中,提供了OLE DB访问技术,不仅可以访问关系型数据库,还可以访问非关系型数据库。2.1.2操作系统与开发环境Windows 9x/NT支持Windows Sockets API,编程语言采用了可视化、面向对象技术的Microsoft Visual C+6.0。Visual C+6.0中的Microsoft基类(MFC,即Microsoft Foundation Class)库是一系列C+类,其中封装着为Microsoft Windows操作系统系列编写应用程序的各种功能。在有关套接字方面,Visual C+6.

20、0对原来的Windows Sockets库函数进行了一系列封装,继而产生了CSocket、CSocketFile等类,它们封装着有关Socket的各种功能。Visual C+6.0中的Microsoft基类(MFC,即Microsoft Foundation Class)库是一系列C+类,其中封装着为Microsoft Windows操作系统系列编写应用程序的各种功能。在有关套接字方面,Visual C+5.0对原来的Windows Sockets库函数进行了一系列封装,继而产生了CSocket、CSocketFile等类,它们封装着有关Socket的各种功能。2.1.3通信协议 Window

21、s 9x/NT带有协议。但是,所开发的网络通信应用程序并不能直接与TCP/IP核心打交道,而是与网络应用编程界面Windows Sockets API打交道。Windows Sockets API则可直接与TCP/IP核心进行沟通。TCP/IP核心协议连同网络物理介质(如网卡)一起,都是提供网络应用程序间相互通信的设施。之所以选择TCP是因为它是一种基于连接的协议,在传输时会先行建立连接,通过连接可确保传输的正确性;UDP则是一种无连接的协议,它在传输文件时不会确保传输端的文件能够正确无误的传送到接收端,所以我们没有采用UDP协议。当然,在作网络广播时,UDP协议更有效率。在windows下,

22、网络通信的技术还有NetBIOS编程,重定向器、邮槽和管道等。下面简单的介绍一下NetBIOS和Winsock编程技术。NETBIOS网络基本输入/输出系统(Network Basic Input/Output System, NetBIOS)是一种标准的应用程序编程接口(API)。对应于OSI模型,NetBIOS主要在会话和传输层发挥作用。NetBIOS API实施方案适用于为数众多的网络协议,使得编程接口“与协议无关”。NetBIOS API中的两个主要的概念是LANA编号和NetBIOS名。LANA编号对应于物理网卡和传输协议的唯一组合NetBIOS名长度16个字符,其中第16个字符作为

23、特殊用途保留下来。在Win32环境下,针对每个可用的LANA号,每个进程都会为其维持一张NetBIOS名字表。若为LANA 0增添一个名字,意味着应用程序只能在LANA 0上同客户端建立连接。另外,NetBIOS名分为唯一名字和组名两种类型。NetBIOS同时提供了“面向连接”服务以及“无连接”服务。有了上面的概念,我们来看看NetBIOS API的设置,只有一个函数:UCHAR NetBIOS(PNCB Pncb);其中PNCB是指网络控制块的指针,该网络控制块包含了NetBIOS命令和所需的参数。Socket编程模型在实时交流系统中的应用网络通信通常指两台主机或两个进程,通过网络来传递它们

24、之间的数据,这样的过程可以理解为网络的一次对话(Session)。网络对话的每一端就成为网络通信的端点,即网络通信实体的最小单位。当使用Socket接口对网络通信编程时,Socket是网络通信过程中端点的抽象表示。我们采用了客户/服务器模型。2.1.4 多线程技术多线程函数是Win 32的一个重要方面,其编程技术较为新颖,在程序设计思路上不同于传统的模块结构化方法,比一般的面向对象的思路也较为复杂,尤其是对于多处理器平台的处理更为复杂。要设计出性能良好的多线程程序,不仅需要对操作系统的处理过程很清楚,还需要对具体应用有一个全面的认识,并对应用中各线程部分的关系非常清楚,对同步模块中的同步对象的

25、具体含义应尽可能地清晰明了,以利于在程序中控制同步事件的发生,避免出现死锁或不能同步处理的现象。线程的创建比较简单,可以利用Create Thread或者AfxBegin Thread来实现,终止线程可以用Termina te Thread来实现。线程只见信息的共享可以利用全局变量来实现或者消息函数来实现。多线程的设计关键之处在于线程之间的同步。线程的同步可以用以下几种方法:1、通过设置线程的互斥体对象,在可能冲突的地方进行同步控制。首先,建立互斥体对象,得到句柄:HANDLE CreateMutex( );然后,在线程可能冲突区域的开始(即访问共享资源之前),调用WaitForSingleO

26、bject将句柄传给函数,请求占用互斥体对象:dwWaitResult = WaitForSingleObject(hMutex, 5000L);共享资源访问完后,释放对互斥体对象的占用: ReleaseMutex(hMutex);互斥体对象在同一时刻只能被一个线程占用。当互斥体对象被一个线程占用时,若有另一线程想占用他,则必须等到前一线程释放后才能成功。2、设置排斥区 在排斥区中异步执行时,他只能在同一进程的线程之间共享资源处理。虽然此时上面介绍的方法可以使用,但是,使用排斥区的方法则使同步管理的效率更高;先定义一个CRITICAL -SECTION结构的排斥区对象,在进程使用之前先对对象进

27、行初始化,调用如下函数:VOID Initialize Critical Section( LPCRITICAL -SECTION );当一个线程使用排斥区时,调用函数:EnterCriticalSection或者TryEnterCriticalSection;当要求占用、退出排斥区时,调用函数: LeaveCriticalSection。释放对排斥区对象的占用,供其他线程使用。互斥体对象、信号对象和事件对象也可以用于进程间的线程同步操作。2.2 系统方案说明2.2.1 可选择的系统方案基于Winsock的通信聊天工具该方案采用Winsock作为底层网络通信技术来实现广播聊天,二人私聊。该方案

28、要求在TCP/IP协议的基础上运行。由于Winsock对广播传输,建立连接传输,数据报传输的支持,该方案是可行的。基于网页形式的聊天工具该方案利用现在成熟的网页技术来实现聊天工具的开发。该方案不再需要对底层网络通信进行开发,因为有HTTP的很好的支持。因此工作重心转到语音聊天的开发和服务器端的开发。对于网页开发,现在有.NET等工具很好的支持,因此该方案是可行的,但是必将导致服务器固定这一缺点,不符合该项目提出的初衷。2.2.2 本系统的方案1、系统说明本聊天工具最终采取的方案为Winsock+VC6.0,即底层通信技术采用WINSOCK通信,,开发工具为VC6.0。WINSOCK对于跨平台,

29、跨协议有很好的支持,而且以名字标示主体,大大简化编程。要求该聊天工具可以实现服务器自建,几种聊天方式等功能。2 、处理流程:图2.13、局限性该聊天工具适用于同一个网段之内。没有对视频,图像聊天的支持2.3 系统任务概述利用WINSOCK通信技术实现一个能够广播聊天,二人私聊的一个聊天工具。具体目标见下面:可以公开聊天,此时,不需要选择对象。可以登录察看一个服务器的详细资料。可以新建一个服务器。可以选择聊天的对象,也可以公开聊天。可以和某人私聊,别人看不到。可以退出一服务器。聊天内容为纯文本方式。可以建立Winsock连接,用于两个人的私有聊天室。2.4 系统其他要求2.4.1 系统性能要求时

30、间特性对于公共聊天,要求响应每条消息的时间不超过1秒钟,否则用户将感到这个聊天工具反应迟钝。对于二人文本私聊,要求响应每条消息的时间不超过500ms,这样使得二人私聊能够有种当面聊天的感觉。灵活性要求该聊天工具能够适用于多种协议上,而且能够在任意个自治系统之内使用,要求服务器自建非常灵活。2.4.2 系统环境要求1、硬件要求安装了网卡,并连入因特网或局域网。2、软件要求安装了windows98以上的系统。安装了支持WINSOCK通信的TCP/IP或者NETBEUI等协议。第三章 系统设计3.1 系统的硬件环境系统采用对等式结构,即任一节点均可作为服务器,又可作为客户端,同时,整个网络上可运行多

31、个服务器,其中双空心箭头表示两者之间建立连接通信,而虚心箭头表示广播发送消息。图3.1任何一端都可能是客户端,也可能是服务器端,如果它新建了一个服务器,她就是服务器端,如果她登录了一个其他用户节点所创建的服务器,她就是客户端,作为服务器端,它具有客户端的所有功能,但又要比客户端的功能多,完成广播服务器名和发送用户名,完成用户的连接和退出功能,响应用户的请求,即要管理一个服务器。作为服务器的节点1或2,它将向网络上的所有客户端广播自己的服务器地址。作为服务器的节点1,将向该节点所创建的服务器内的所有客户端3,4发送新的用户消息,发送用户退出消息,等待网络上所有的节点的连接消息,转发从客户端接受到的新的消息。作为服务器的节点2,将向该服务器内的客户端5发送用户名,发送用户退出消息,等待网络上所有的节点的连接消息。作为客户端,将向服务器端发送请求连接消息,等待服务器端的响应。作为客户端,将向指定的网络上的节点发送请求动作消息,服务器将该消息转发给对应的客户,相应的客户响应该查询,从而完成加动作的聊天消息。无论作为服务器端,还是客户端,将向网络上的所有的节点广播公共聊天消息。任一客户端均可以两个人的私聊模式,发送两个人的私聊信息,别的用户无法查看两人的私聊信息。3.2 系统的

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1