即时通讯系统的设计与实现论文Word格式.docx
《即时通讯系统的设计与实现论文Word格式.docx》由会员分享,可在线阅读,更多相关《即时通讯系统的设计与实现论文Word格式.docx(46页珍藏版)》请在冰豆网上搜索。
1996年11月ICQ在全球发布,拉开了互联网IM(InstantMessenger,即时通讯)应用的序幕。
就是这样一款小软件在短短数年时间里发展出一个巨大的IM产业。
时至今日,即时性通讯工具早已成为最热门的网络应用之一。
国内外的聊天工具举不胜数。
ICQ作为全球第一款即时性通讯工具,在经过短短数年的发展,其行业内的地位如今已是无人能够撼动。
ICQ名字取自英文“Iseekyou”的谐音,即是“我找你”的意思。
最初的ICQ只有两个特性,即用户列表和即时聊天。
但一经推出就受到众多网民的喜爱,6个月内其注册用户迅速攀升至85万,1998年它的用户数量更是翻了10数倍,达到了1200万人。
ICQ的迅猛发展也让当时的互联网领头羊Yahoo和在桌面软件领域独步天下的微软嗅到了商机,它们分别推出了YahooMessenger、MSNMessenger和昙花一现的MSChat。
即时通讯市场雏形顿显,有了国际互联网巨头和最大软件公司的融入,即时通讯时代的大幕就此徐徐拉开。
当ICQ风行全球的时候,在国内各种仿ICQ的中文IM软件也纷纷推出,时至今日,占据国内的市场的主要是腾讯公司的QQ、微软的MSN、雅虎的雅虎通等。
其中腾讯公司的QQ以占据了国内70%以上的市场。
随着IM应用的深入,其功能早已超越了初期的即时文字聊天。
表情图标早已成为各个IM软件的标准功能,文件传输、语音/视频聊天、游戏、网上交友等高级功能也正越来越多地被集成进入IM应用。
事实表明,现在的IM已不再是一个简单的沟通工具,而是一个信息资讯、交流互动、休闲娱乐中心,IM平台上的语音、视频、音乐点播、信息共享等新应用层出不穷。
发展到现在,IM软件越来越成熟,IM产业链也已经形成,已经成为现代人和现代经济中不可或缺的一部份,相信未来IM软件的道路会更加宽广和精彩。
本课题研究的意义
21世纪是信息的时代,随着互联网技术的发展,信息在传递方面也有了崭新的一面。
现今聊天软件成为信息传递最为广泛的应用工具,它发挥了即时性通信的特点,可以让用户在第一时间内得到信息的交流,它不仅可以让用户进行文字聊天,而且还增添语音、视频功能。
这样可以让网上的好友身临其境的面对面的聊天,让彼此之间更为深入的了解。
人性化的设计让每个用户都可以得心应手的使用,从而获得更多人的青睐。
Internet的出现连通了整个世界,而聊天软件的出现则连通了每一位网上的用户。
随着网络应用的发展,聊天软件已经成为最热门的网络应用之一。
经历了近几年突飞猛进的发展之后,即时通讯工具早已不再是简单的互联网通讯工具,它已经成为一个集互动交流、休闲娱乐、信息管理为一体的多元化互联网应用平台。
总之,聊天软件的出现给人们彼此之间的沟通带来了无比的方便,人们可以通过聊天软件建立深刻的友情,让人们在互联网上的交流更加充满活力与生机。
本课题的主要工作内容
聊天软件作为使用最为广泛的即时性通讯工具,它在拥有文字聊天基础功能的同时,为满足用户的需求,还增加了文件传输的功能,成为现在最为主流的网上应用软件。
本论文主要对聊天软件的文字聊天、文件传输功能进行分析与研究,总结出实现的相关理论与知识。
本课题主要研究内容包括以下几个方面:
(1)查找相关书籍与文献,了解C/S构架并搭建.NET开发平台
(2)查找相关资料,学习C#开发语言以及SQLServer数据库的使用,
(3)查找现阶段基于局域网的即时通讯软件的发展现状以及相关功能
(4)Socket编程技术
在上述基础上,做出即时通讯软件的相关功能如下:
(1)用户注册功能
(2)用户登录功能
(3)添加好友功能
(4)添加分组功能
(5)删除好友功能
(6)删除分组功能
(7)移动好友到指定分组功能
(8)即时聊天功能
(9)文件传输功能
论文的组织结构
第1章:
需求分析和可行性分析,分析了系统的需求和系统实施的可行性。
第2章:
数据库设计,介绍了本系统所使用的数据库、数据库的设计、数据库E-R图以及数据库关系图。
第3章:
详细设计,本章主要进行了系统的模块设计,包括多线程设计、服务器设计、数据库连接以及阐述系统各功能模块。
第4章:
重难点分析及解决方案,本章着重分析了本系统的重难点及其解决方案。
第5章:
系统测试与发布,本章主要介绍了系统测试的环节、展示了测试的结果以及系统的发布。
第6章:
系统的不足与展望,主要陈述了本系统存在哪些不足的地方以及对系统的展望。
1需求分析和可行性分析
1.1需求分析
此次开发的网络聊天工具可作为企业局域网的交流工具使用,通信的安全性不是很高,但要求信息的响应速度要较快,让用户充分享受到网络即时消息的方便和快捷。
本聊天工具由服务器端程序和客户端程序两部分组成,整体采用.NET平台开发,采用UDP通信协议,使用Socket技术。
服务器是可以进行监听,记录客户端请求和验证客户端身份的合法性,客户端程序面向实际用户,它有必要的界面的按钮,向用户提供网络即时消息的功能。
1.1.1系统包含的功能
本聊天系统需包含如下基本功能:
(1)客户端的主要功能:
●用户登录
●添加好友
●删除好友
●添加分组
●删除分组
●获取好友列表
●与好友聊天
●文件传输
(2)服务器端的主要功能:
●启动和关闭后台服务器
●建立连接
●监听客户端请求
1.1.2功能模块
聊天工具由服务器端和客户端组成,要分析清楚两方面所要完成的任务,对设计来说,等于完成了一半。
根据聊天的通信步骤,系统的功能模块如图1-1所示:
图1-1系统功能模块图
(1)服务器端
服务器端完成3大功能:
建立连接、断开连接、监听客户请求。
这3大功能的具体含义如下:
●建立连接:
系统启动时建立连接,绑定本地计算机的一个端口,不断地监听是否有客户端请求连接或者断开连接。
●断开连接:
关闭监听窗体,系统断开连接。
●监听客户请求:
服务器端是个信息枢纽,所有向服务器端请求的客户端的信息都要传到服务器端,再由服务器根据客户端的请求按要求分发出去,客户端再向服务器端发送各种请求,如:
登录,添加好友,获取分组等。
(2)客户端
客户端完成以下几大功能:
用户注册、用户登录、添加好友或分组、删除好友或分组、聊天功能、文件传输功能。
●用户注册:
客户端与服务器建立通信通道,接收来自服务器的监听。
通过系统的注册界面,输入账号和密码,完成注册。
●用户登录:
通过系统的登录界面,输入账号和密码,然后发送到服务器进行验证。
如果验证通过,则打开程序的主界面。
●添加好友或分组:
用户在登录系统之后可以添加好友和分组。
●删除好友或分组:
用户可以选择删除好友和分组。
●聊天功能:
客户在与好友建立通信连接后,便可以与好友进行聊天,聊天时发送的是文本信息。
●文件传输:
用户之间可以相互传送文件以实现文件共享。
1.2系统可行性分析
可行性分析(FeasibilityAnalysis)也称为可行性研究,是在系统调查的基础上,针对新系统的发开是否具备必要性和可能性,对新系统的开发从各方面进行分析和研究,以避免投资失误,保证新系统的开发成功。
可行性研究的目的就是用最小的代价在尽可能短的时间内确定问题是否能够解决。
1.2.1经济可行性分析
基于局域网、C/S架构的即时通讯系统在很多资料上都能找到,包括书本和网络上都有很多类似的系统,开发这样一个系统所需要的花费不是很大,需要的开发工具、需要的软件等都可以在网上找到试用版,不需要购买,所以不需要花费太多金钱,在经济上完全能够完成本系统的设计。
1.2.2人力可行性分析
完成本系统不需要太多的人力资源,有老师和同学的帮助,也可以在网上找到与本系统相关的很多资源,在人力资源上能够完成本系统的设计。
1.2.3技术可行性分析
基于.NET的即时通讯软件,实现一般通讯软件的基本功能(登录,聊天,退出),没有十分复杂的其他功能,如:
修改好友备注、皮肤设置,截图等,只是一些简单的通讯功能,如:
登录、添加好友、与好友聊天、传输文件等基本的功能,这些都能够运用所学的知识实现。
本系统使用的编程语言是C#语言,所使用的平台是.NET平台,对于VS2010的使用还是比较熟悉。
虽然没有系统的学习过C#编程。
对于C#的一些知识有所欠缺,但是,学校开设了C#课程,使自己对于C#编程语言有一定了解,能够在短时间之内掌握一些基本的C#知识。
完成这个通讯软件的基础知识大都已经具备,同时,在网络上有许多开源社区,有很多开源爱好者,能够查到许多开源源代码,自己能够充分运用这些网络资源,完成这个毕业设计。
1.3开发环境和相关技术介绍
1.3.1开发环境
本设计是一个局域网即时通讯软件,要在短时间内开发出来并且满足客户要求,无论是硬件还是软件都要选择合适,要求如下:
开发设备完善;
开发机器的性能必须稳定;
操作系统的选择应该适当;
开发出的程序可以在尽可能多的平台上运行;
要求运行机配置尽可能低档。
对此,我选择的硬件环境和软件环境如下:
●硬件环境
(1)处理器:
IntelPentiumPIII或者更高的处理器
(2)内存:
256MB或更高
(3)网络:
局域网
●软件环境
(1)操作系统:
WindowsXP/Windows7
(2)开发平台:
MicrosoftVisualStudio2010
(3)开发语言:
(4)数据库:
SQLServer2005
1.3.2MicrosoftVisualStudio2010介绍
VisualStudio是微软公司推出的开发环境。
是目前最流行的Windows平台应用程序开发环境之一。
VisualStudio2010于2010年4月12日上市,其集成开发环境(IDE)的界面被重新设计和组织,变得更加简单。
VisualStudio2010同时带来.NETFramework4.0、MicrosoftVisualStudio2010CTP(CommunityTechnologyPreview-CTP),并且支持开发面向Windows的应用程序。
除了MicrosoftSQLServer,它还支持IBMDB2和Oracle数据库。
目前有5个版本:
专业版、高级版、旗舰版、学习搬和测试版,本系统使用的是旗舰版,MicrosoftVisualStudio2010采用拖曳式便能完成软件的开发。
简简单单的操作便可以实现一个界面的生成。
但拖曳的界面,也应当有相应的代码来实现功能。
Microsoft
VisualStudio2010支持C#、C++、VB等等。
可以快速实现相应的功能。
1.3.3.NET平台
基于.NET平台上的开发语言有VB.NET,C#,VC++.NET,J#和F#。
C#(CSharp)是微软(Microsoft)为.NETFramework量身订做的程序语言,它拥有C/C++的强大功能以及VisualBasic简易使用的特性,是第一个组件导向的程序语言,也是一门面向对象(object-oriented)高级程序语言,是目前该平台上流行的主要开发语言。
C#是一种最新的、面向对象的编程语言,它使得程序员可以快速地编写各种基于MICROSOFT.NET平台的应用程序,同时微软提供了一系列的工具和服务来最大程度地开发利用计算与通讯领域。
C#具有面向对象的基本属性:
继承、封装和多态,这方面它继承了Java和C\C++的一些特点,如类的声明、方法重载等同Java,命名空间、操作符重载等同C++,这使得C++、java程序远可以快速地过渡到C#上开发高效程序。
同时它也有自己的独特的特点,如中间语言,这是寄托于.NET框架的特点,编译成的中间语言通过.NET框架在计算机上及时编译执行,可移植性好。
1.3.4C#语言简介
C#是一种最新的、面向对象的编程语言[2]。
它使得程序员可以快速地编写各种基于Microsoft.NET平台的应用程序,Microsoft.NET提供了一系列的工具和服务来最大程度地开发利用计算与通讯领域。
正是由于C#面向对象的卓越设计,使它成为构建各类组件的理想之选——无论是高级的商业对象还是系统级的应用程序。
使用简单的C#语言结构,这些组件可以方便的转化为XML网络服务,从而使它们可以由任何语言在任何操作系统上通过Internet进行调用。
最重要的是,C#使得C++程序员可以高效的开发程序,而绝不损失C/C++原有的强大的功能。
因为这种继承关系,C#与C/C++具有极大的相似性,熟悉类似语言的开发者可以很快的转向C#。
C#语言有以下一些功能:
(1)效率与安全性
(2)支持现有的网络编程新标准
(3)清除大量程序错误
(4)C#语言允许类型定义的、扩展的元数据
(5)扩展交互性
1.3.5Socket技术
所谓Socket通常也称作“套接字”[6,13],应用程序通常通过“套接字”向网络发出请求或者应答网络请求。
依照连接启动的方式和本地套接字需要连接的目标,套接字之间的连接过程可以分为三个步骤:
服务器监听,客户端请求,连接确认。
服务器端监听:
服务器端套接字并不定位监听具体的某一个客户端套接字,而是处于等待连接的状态,实时监控网络状态。
客户端请求:
是指由客户端套接字提出连接请求,要连接的目标是服务器端套接字。
为此,客户端套接字必须首先描述它要连接的服务器套接字,指出服务器端套接字的地址和端口号,然后就向服务器端套接字提出连接请求。
连接确认:
是指当服务器端套接字监听到或者接收到客户端套接字的连接请求,它就响应客户端套接字的请求,创建一个新的线程,把服务器端套接字的信息发送给客户端,一旦客户端确认了此信息,连接就创建好了。
而服务器端套接字还是继续处于监听状态,继续接收和处理其他客户端套接字的连接请求。
1.3.6TCP/IP协议
TCP/IP是国际互联网所采用进行网际互连的通信协议[3],实际所称的TCP/IP协议包括了在国际互联网络应用的一组协议,互联网协议族是此协议族的另一个名字[6,11]。
(1)TCP协议
TCP(TransmissionControlProtocol)传输控制协议是一个TCP/IP的组中能够完成可靠数据传送的传输层协议,并经过顺序响应能完成对应用程序的虚拟连接服务,在需要的时候进行包转发[3]。
与IP协议相结合,TCP是网络协议的核心。
应用层向TCP层发送用于网间传输的、用8位字节表示的数据流,然后TCP把数据流分割成适当长度的报文段。
之后TCP把结果包传给IP层,由它来通过网络将包传送给接收端实体的TCP层。
TCP为了保证不发生丢包,就给每个字节一个序号,同时序号也保证了传送到接收端实体的包的按序接收。
然后接收端实体对已成功收到的字节发回一个相应的确认(ACK);
如果发送端实体在合理的往返时延(RTT)内未收到确认,那么对应的数据(假设丢失了)将会被重传。
TCP用一个校验和函数来检验数据是否有错误;
在发送和接收时都要计算和校验。
TCP服务提供了可靠性、有效流控制、数据流传输、多路复用技术和全双工操作等。
(2)UDP协议
UDP协议的是英文UserDatagramProtocol的缩写,中文名是用户数据报协议[7]。
是OSI参考模型中一种无连接的传输层协议,提供面向事务的简单不可靠信息传送服务,IETFRFC768是UDP的正式规范。
UDP协议主要是用来支持那些需要在计算机之间传输数据的应用[12]。
在网络中它与TCP协议一样用于处理数据包,是一种无连接的协议。
UDP用来支持那些要在计算机之间传输数据的网络应用。
包括网络视频会议系统在内的众多的客户/服务器模式的网络应用都会使用到UDP协议。
与所熟知的TCP协议一样,UDP协议直接位于IP(网际协议)协议的顶层。
根据OSI参考模型,UDP和TCP都属于传输层协议。
UDP协议使用端口号为不同的应用保留其各自的数据传输通道。
UDP和TCP协议正是采用这一机制实现对同一时刻内多项应用同时发送和接收数据的支持。
发送数据的一方(可以是客户端或服务器端)将UDP数据报通过源端口发送出去,而接收数据的一方则通过目标端口接收数据。
有的网络应用只能使用预先为其预留或注册的静态端口;
而另外一些网络应用则可以使用未被注册的动态端口。
因为UDP报头使用两个字节存放端口号,所以端口号的有效范围是从0到65535。
一般来说,大于49151的端口号都代表动态端口。
1.3.7Client/Server结构(客户端/服务器模式)
C/S结构(Client/Server,客户机/服务器),是20世纪80年代末逐步成长起来的一种模式,是软件系统体系结构中的一种。
利用它可以充分利用两端硬件环境的优势,将任务合理分配到客户端和服务器端来实现,降低了系统通讯的开销。
现在大多数应用软件系统都是Client/Server形式的两层结构,由于现在的软件应用系统正在向分布式的Web应用发展,Web和Client/Server应用都可以进行同样的业务处理,应用不同的模块共享逻辑组件;
因此,内部的和外部的用户都可以访问新的和现有的应用系统,通过现有应用系统中的逻辑可以扩展出新的应用系统。
这也就是目前应用系统的发展方向。
C/S结构的关键在于功能的分布,一些功能放在客户端执行,另一些功能则放在服务器端执行。
功能的分布在于减少计算机系统的各种问题。
C/S模式简单来说就是基于企业内部网络的应用系统。
与B/S(Browser/Server,浏览器/服务器)模式相比,C/S模式应用系统的最大好处不在于依赖企业外网环境,也就是说无论用户能否上网,都不会影响应用。
1.4本章小结
本章主要对本系统的相关技术进行介绍,对基于C/S即时通讯的原理有一定的了解,对数据信息在网络中传输的原理都有进一步的认识,从需求分析和可行性分析出发讲述系统的系统设计架构、需求分析、技术可行性分析以及对系统的开发环境和相关技术进行了详细的介绍。
为设计本系统构建了一定的理论体系。
2数据库设计
2.1SQLServer数据库介绍
SQLServer是一个关系数据库管理系统[4],SQLServer2005通过在数据集成、可伸缩性、开发工具和强大的分析等方面的革新更加确立了微软在BI领域的领导地位。
SQLServer2005能够把信息准时地传递到组织内部各员工的手中,从而实现了可伸缩的商业智能。
从企业的管理者到信息工作者,员工可以迅速地、简单地处理数据,以便更好更快的做出决策。
SQLServer2005全面的集成、分析和报表功能使企业能够提高他们已有应用的价值,即使是这些应用是在不同的平台上进行的。
其主要特点如下:
(1)系统管理先进,支持Windows图形化管理工具,支持本地和远程的系统管理和配置。
(2)强壮的事务处理功能,采用各种方法保证数据的完整性。
(3)支持对称多处理器结构、存储过程、ODBC,并具有自主的SQL结构化查询语言。
SQLServer以其内置的数据复制功能、强大的管理工具、与Internet的紧密集成和开放的系统结构为广大的用户、开发人员和系统集成商提供了一个出众的数据库平台。
2.2理论基础
设计关系数据库时,遵循不同的规范要求,设计出合理的关系型数据库,这些不同的规范要求被称为不同的范式,各种范式呈递次规范,越高的范式数据库冗余越小[4]。
(1)第一范式(1NF)就是无重复的域。
在任何一个关系数据库中,第一范式是对关系模式的设计基本要求,一般设计中都必须满足第一范式。
不过有些关系模型中突破了1NF的限制,这种称为非1NF的关系模型。
换句话说,是否必须满足1NF的最低要求,主要依赖于所使用的关系模型。
(2)第二范式(2NF)要求实体的属性完全依赖于主关键字。
(3)第三范式(3NF)要求一个关系中不包含已在其它关系已包含的非主键子信息。
数据库设计是进行系统开发的基础性工作,设计方案的好坏是影响开发的重要因素。
数据库设计要遵循以下原则[4]:
(1)数据的完整性:
保证数据库中的数据准确。
(2)数据的结构化:
数据库设计必须层次分明,分布合理。
数据库必须高度结构化,保证数据的结构化、规范化和标准化。
(3)减少数据冗余:
数据库系统应该尽量减少数据冗余,节省存储空间,提高数据质量。
消除数据库表中非主属性对主关键词的非完全依赖性和非主属性对主关键词的传递依赖性,将二维表转化为第三范式,是降低数据冗余的有效方式。
2.3数据库E-R图
用户和好友关系之间是多对多的关系,一个用户可以对应多个好友关系、一种好友关系同样也可