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

加入VIP,免费下载
 

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

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

下载须知

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

版权提示 | 免责声明

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

毕业设计即时通讯系统设计说明书 推荐文档格式.docx

1、Key words: Instant Messager; Socket;第一章 绪 论1.1 即时通信系统的概念即时通讯(Instant Messenger,简称IM),是指能够即时发送和接收互联网消息等的业务。自1998年面世以来,特别是近几年的迅速发展,即时通讯的功能日益丰富,逐渐集成了电子邮件、博客、音乐、电视、游戏和搜索等多种功能。即时通讯不再是一个单纯的聊天工具,它已经发展成集交流、资讯、娱乐、搜索、电子商务、办公协作和企业客户服务等为一体的综合化信息平台。是一种终端连网即时通讯网络的服务。即时通讯不同于e-mail在于它的交谈是即时的。大部分的即时通讯服务提供了状态信息的特性显示联

2、络人名单,联络人是否在在线与能否与联络人交谈。近年来,随着无线通信的快速发展,移动互联网为传统的Internet注入了新的活力,同时也为即时通讯带来了一场革命,交互双方已经不再局限于以网络终端设备为唯一的接入手段,PC机在传统的网络即时通讯中所起的作用正在被手机、平板电脑所取代。这使得即时通讯更加大众化和人性化,即使不会使用电脑的人现在也可以享受到即时通讯给人们带来的变化。纵观即时通讯软件业的迅速发展,设计并开发一个即时通讯平台,对于现阶段的学习和研究,都是极为有意义的,基于这个前提和起因,我选择了设计即时通讯系统作为我的毕业设计。1.2 国内外即时通讯的研究现状从商业研究的方面看,即时通讯软

3、件从最初的免费政策,到逐渐挖掘和整合创新多种盈利模式,即时通讯市场收入逐步扩大,而为企业用户提供商务即时通讯的一整套解决办法将成为未来即时通讯企业角逐的热点和盈利的新空间1。即时通讯运营商的盈利模式包括互联网增值服务、无线网增值服务、广告服务和企业即时通讯服务。以前,即时通讯运营商的盈利方式还仅局限于互联网即时通讯增值业务,但是随着市场的发展和功能的开发,无线网络增值业务和广告业务更多的参与到运营商整体收入中来2。从学术化的即时通讯研究方面看,国内外公开发表的论文非常少3。仅有的几篇集中在即时通讯基本服务元素的定义方面4与即时通讯软件技术实现、编程技巧等方面5。还有部分关于安全性的讨论6。总的

4、说来,国内外关于即时通讯的研究还不够系统和深入。1.3 本课题的意义与主要工作内容聊天软件作为使用最为广泛的即时性通讯工具,它在拥有文字聊天基础功能的同时,为满足用户的需求,还增加了文件传输的功能,成为现在最为主流的网上应用软件。本论文主要对聊天软件的文字聊天、文件传输功能进行分析与研究,总结出实现的相关理论与知识。本课题主要研究内容包括以下几个方面:(1) 查找相关书籍与文献,了解C/S构架并搭建.NET开发平台(2) 查找相关资料,学习C#开发语言以及SQL Server数据库的使用,(3) 查找现阶段基于局域网的即时通讯软件的发展现状以及相关功能(4) Socket编程技术在上述基础上,

5、做出即时通讯软件的相关功能如下:(1) 用户注册功能(2) 用户登录功能(3) 添加好友功能(4) 添加分组功能(5) 删除好友功能(6) 删除分组功能(7) 移动好友到指定分组功能(8) 即时聊天功能(9) 文件传输功能1.4 论文的组织结构第一章:绪论。第二章:需求分析和可行性分析,分析了系统的需求和系统实施的可行性。第三章:数据库设计,介绍了本系统所使用的数据库、数据库的设计、数据库E-R图以及数据库关系图。第四章:详细设计,本章主要进行了系统的模块设计,包括多线程设计、服务器设计、 数据库连接以及阐述系统各功能模块。第五章:重难点分析及解决方案,本章着重分析了本系统的重难点及其解决方案

6、。第六章:系统测试与发布,本章主要介绍了系统测试的环节、展示了测试的结果以及系统的发布。第七章:系统的不足与展望,主要陈述了本系统存在哪些不足的地方以及对系统的展望。第二章 需求分析和可行性分析2.1 需求分析此次开发的网络聊天工具可作为企业局域网的交流工具使用,通信的安全性不是很高,但要求信息的响应速度要较快,让用户充分享受到网络即时消息的方便和快捷。本聊天工具由服务器端程序和客户端程序两部分组成,整体采用.NET平台开发,采用UDP通信协议,使用Socket技术。服务器是可以进行监听,记录客户端请求和验证客户端身份的合法性,客户端程序面向实际用户,它有必要的界面的按钮,向用户提供网络即时消

7、息的功能。2.1.1 系统包含的功能本聊天系统需包含如下基本功能:(1) 客户端的主要功能: 用户注册 用户登录 添加好友 获取好友列表 与好友聊天 发送表情功能 文件传输(2) 服务器端的主要功能: 启动服务 建立连接 监听客户请求2.1.2 功能模块聊天工具由服务器端和客户端组成,要分析清楚两方面所要完成的任务,对设计来说,等于完成了一半。根据聊天的通信步骤,系统的功能模块如图2-1所示。(1) 服务器端服务器端完成3大功能:建立连接、断开连接、监听客户请求。这3大功能的具体含义如下: 建立连接:系统启动时建立连接,绑定本地计算机的一个端口,不断地监听是否有客户端请求连接或者断开连接。 断

8、开连接:停止监听,系统断开连接。 监听客户请求:服务器端是个信息枢纽,所有向服务器端请求的客户端的信息都要传到服务器端,再由服务器根据客户端的请求按要求分发出去,客户端再向服务器端发送各种请求,如:登录,发送消息,获取好友列表等。图2-1 系统功能模块图 (2) 客户端客户端完成以下几大功能:用户注册、用户登录、添加好友、聊天功能、发送表情、文件传输功能。 用户注册:客户端与服务器建立通信通道,服务就收客户端的注册请求。通过系统的注册界面,输入账号和密码,完成注册。 用户登录:客户端与服务器建立通信通道,随时接收来自服务器的监听。通过系统的登录界面,输入账号和密码,然后发送到服务器进行验证。如

9、果验证通过,服务器则返回用户的好友信息。 添加好友:用户在登录系统之后可以添加好友。 聊天功能:客户在与好友建立通信连接后,便可以与好友进行聊天,聊天时发送的是文本信息。 发送表情功能:与好友聊天时,可在文本信息中插入表情。 文件传输:用户之间可以相互传送文件以实现文件共享。2.2 系统可行性分析可行性分析(Feasibility Analysis)也称为可行性研究,是在系统调查的基础上,针对新系统的发开是否具备必要性和可能性,对新系统的开发从各方面进行分析和研究,以避免投资失误,保证新系统的开发成功。可行性研究的目的就是用最小的代价在尽可能短的时间内确定问题是否能够解决。2.2.1 经济可行

10、性分析基于局域网、C/S架构的即时通讯系统在很多资料上都能找到,包括书本和网络上都有很多类似的系统,开发这样一个系统所需要的花费不是很大,需要的开发工具、需要的软件等都可以在网上找到试用版,不需要购买,所以不需要花费太多金钱,在经济上完全能够完成本系统的设计。2.2.2 人力可行性分析完成本系统不需要太多的人力资源,有老师和同学的帮助,也可以在网上找到与本系统相关的很多资源,在人力资源上能够完成本系统的设计。2.2.3 技术可行性分析基于.NET的即时通讯软件,实现一般通讯软件的基本功能(登录,聊天,退出),没有十分复杂的其他功能,如:登录、添加好友、与好友聊天、传输文件等基本的功能,这些都能

11、够运用所学的知识实现。本系统使用的编程语言是C#语言,所使用的平台是.NET平台,对于VS2010的使用还是比较熟悉。在校已学习过C#编程。完成这个通讯软件的基础知识大都已经具备,同时,在网上也可以找到许多资料,如CSDN、看雪论坛等能够查到许多开源源代码,自己能够充分运用这些网络资源,完成这个毕业设计。2.3 开发环境和相关技术介绍2.3.1 开发环境本设计是一个局域网即时通讯软件,要在短时间内开发出来并且满足客户要求,无论是硬件还是软件都要选择合适,要求如下:开发设备完善;开发机器的性能必须稳定;操作系统的选择应该适当;开发出的程序可以在尽可能多的平台上运行;要求运行机配置尽可能低档。对此

12、,我选择的硬件环境和软件环境如下: 硬件环境(1) 处理器:Intel Pentium PIII或者更高的处理器(2) 内存:256MB或更高(3) 网络:局域网 软件环境(1) 操作系统:Windows XP/Windows 7(2) 开发平台:Microsoft Visual Studio 2010(3) 开发语言:C#(4) 数据库:SQL Server 20052.3.2 Microsoft Visual Studio 2010介绍Visual Studio是微软公司推出的开发环境。Visual Studio 2010同时带来.NET Framework 4.0、Microsoft V

13、isual Studio 2010 CTP( Community Technology Preview-CTP),并且支持开发面向Windows的应用程序。2.3.3 .NET平台.NET就是微软的用来实现XML,Web Services,SOA(面向服务的体系结构service-oriented architecture)和敏捷性的技术。.NET是微软的新一代技术平台,为敏捷商务构建互联互通的应用系统,这些系统是基于标准的,联通的,适应变化的,稳定的和高性能的。.NET是基于Windows操作系统运行的操作平台,应用于互联网的分布式。2.3.4 C# 语言简介C#是微软公司发布的一种面向对象

14、的、运行于.NET Framework之上的高级程序设计语言。C#是微软公司研究员Anders Hejlsberg的最新成果。C#看起来与Java有着惊人的相似;它包括了诸如单一继承、接口、与Java几乎同样的语法和编译成中间代码再运行的过程。它是微软公司.NET windows网络框架的主角。2.3.5 Socket 技术所谓Socket通常也称作“套接字”,应用程序通常通过“套接字”向网络发出请求或者应答网络请求。根据连接启动的方式以及本地套接字要连接的目标,套接字之间的连接过程可以分为三个步骤:服务器监听,客户端请求,连接确认。服务器监听:是服务器端套接字并不定位具体的客户端套接字,而是

15、处于等待连接的状态,实时监控网络状态。客户端请求:是指由客户端的套接字提出连接请求,要连接的目标是服务器端的套接字。为此,客户端的套接字必须首先描述它要连接的服务器的套接字,指出服务器端套接字的地址和端口号,然后就向服务器端套接字提出连接请求。连接确认:是指当服务器端套接字监听到或者说接收到客户端套接字的连接请求,它就响应客户端套接字的请求,建立一个新的线程,把服务器端套接字的描述发给客户端,一旦客户端确认了此描述,连接就建立好了。而服务器端套接字继续处于监听状态,继续接收其他客户端套接字的连接请求。2.3.6 TCP/IP 协议TCP/IP是国际互联网所采用进行网际互连的通信协议7 ,实际所

16、称的TCP/IP协议包括了在国际互联网络应用的一组协议,互联网协议族是此协议族的另一个名字8。(1) TCP协议在因特网协议族(Internet protocol suite)四层协议中,TCP层是位于IP层之上,应用层之下的传输层。不同主机的应用层之间经常需要可靠的、像管道一样的连接,但是IP层不提供这样的流机制,而是提供不可靠的包交换。TCP 服务提供了可靠性、有效流控制、数据流传输、多路复用技术和全双工操作等。(2) UDP协议UDP 是User Datagram Protocol的简称, 中文名是用户数据报协议,是 OSI 参考模型中一种无连接的传输层协议,提供面向事务的简单不可靠信息

17、传送服务,IETF RFC 768是UDP的正式规范。在选择使用协议的时候,选择UDP必须要谨慎。在网络质量令人不十分满意的环境下,UDP协议数据包丢失会比较严重。但是由于UDP的特性:它不属于连接型协议,因而具有资源消耗小,处理速度快的优点,所以通常音频、视频和普通数据在传送时使用UDP较多,因为它们即使偶尔丢失一两个数据包,也不会对接收结果产生太大影响。比如我们聊天用的ICQ和QQ就是使用的UDP协议。2.3.7 Client/Server 结构(客户端/服务器模式)Client/Server或客户/服务器模式:Client和Server常常分别处在相距很远的两台计算机上,Client程序

18、的任务是将用户的要求提交给Server程序,再将Server程序返回的结果以特定的形式显示给用户;Server程序的任务是接收客户程序提出的服务请求,进行相应的处理,再将结果返回给客户程序。2.4 本章小结本章主要对本系统的相关技术进行介绍,对基于C/S即时通讯的原理有一定的了解,对数据信息在网络中传输的原理都有进一步的认识,从需求分析和可行性分析出发讲述系统的系统设计架构、需求分析、技术可行性分析以及对系统的开发环境和相关技术进行了详细的介绍。为设计本系统构建了一定的理论体系。第三章 数据库设计3.1 SQL Server数据库介绍SQL Server 是一个关系数据库管理系统。它最初是由M

19、icrosoft、Sybase 和Ashton-Tate三家公司共同开发的,于1988 年推出了第一个OS/2版本。在Windows NT 推出后,Microsoft与Sybase 在SQL Server 的开发上就分道扬镳了,Microsoft 将SQL Server移植到Windows NT系统上,专注于开发推广SQL Server 的Windows NT 版本。Sybase 则较专注于SQL Server在UN操作系统上的应用。SQL是英文Structured Query Language的缩写,意思为结构化查询语言。SQL语言的主要功能就是同各种数据库建立联系,进行沟通。按照ANSI(

20、美国国家标准协会)的规定,SQL被作为关系型数据库管理系统的标准语言。SQL语句可以用来执行各种各样的操作,例如更新数据库中的数据,从数据库中提取数据等。目前,绝大多数流行的关系型数据库管理系统,如Oracle, Sybase, Microsoft SQL Server, Access等都采用了SQL语言标准。3.2 理论基础设计关系数据库时,遵循不同的规范要求,设计出合理的关系型数据库,这些不同的规范要求被称为不同的范式,各种范式呈递次规范,越高的范式数据库冗余越小9。(1) 第一范式(1NF)就是无重复的域。在任何一个关系数据库中,第一范式是对关系模式的设计基本要求,一般设计中都必须满足第

21、一范式。不过有些关系模型中突破了1NF的限制,这种称为非1NF的关系模型。换句话说,是否必须满足1NF的最低要求,主要依赖于所使用的关系模型。(2) 第二范式(2NF)要求实体的属性完全依赖于主关键字。(3) 第三范式(3NF)要求一个关系中不包含已在其它关系已包含的非主键子信息。数据库设计是进行系统开发的基础性工作,设计方案的好坏是影响开发的重要因素。数据库设计要遵循以下原则10:(1) 数据的完整性:保证数据库中的数据准确。(2) 数据的结构化:数据库设计必须层次分明,分布合理。数据库必须高度结构化,保证数据的结构化、规范化和标准化。(3) 减少数据冗余:数据库系统应该尽量减少数据冗余,节

22、省存储空间,提高数据质量。消除数据库表中非主属性对主关键词的非完全依赖性和非主属性对主关键词的传递依赖性,将二维表转化为第三范式,是降低数据冗余的有效方式。3.3 数据库E-R图用户和好友关系之间是多对多的关系,一个用户可以对应多个好友关系、一种好友关系只能对应一个用户。数据库E-R图如图3-1所示。图3-1 数据库E-R图3.4 数据库设计3.4.1 数据库逻辑设计即时通讯系统总共使用到了两张数据表,用户信息表与用户关系表。用户信息表用来记录所有已注册的用户的登录账户、密码、姓名等信息,userid即用户账号为主键,word用于保存密码,name保存用户名字,用户信息表的详细结构如表3-1所

23、示。表3-1 用户表列名数据类型是否主键可否为空useridvarchar(50)是否wordname好友关系表用来记录用户的好友关系,其中userid为主键,friendid用来记录好友的ID,friendid不可以为空,好友关系表的详细结构如表3-2所示。表3-2 好友关系表friendid3.4.2 数据库物理设计(1) 表名:用户信息表此表用来记录所有已注册的用户的登录账户、密码、性别等信息,userid即用户账号为主键。(2) 表名:用户关系表此表用来记录用户的好友关系信息,userid为主键。3.5 数据库关系图用户信息表的主键tmid 作为好友关系表rtmid和rfriend的外

24、键,输入好友的账号,添加成功后,好友的账号将会显示在好友列表中。3.6 本章小结本章主要介绍了SQL Server数据库和数据库的设计。数据库设计又包括数据表设计和存储过程的设计。数据库表主要存储用户信息和好友关系信息,即时通讯系统连接数据库后便可以读取数据库中的信息。第四章 详细设计4.1 多线程设计服务器需要和多个客户端同时进行通信,这就是服务器端的多线程。一旦服务器发现一个新的客户端与之建立了连接,就马上新建一个线程与客户端进行通信。用多线程的好处在于可以同时处理多个通信连接,不会出于由于数据排队而发生的延迟或者丢失,可以很好利用系统的性能11。点击服务器端窗体的“开始服务”按钮,调用Listen开始监听,监听处理过程位于单独的线程中,Listen的实现方法如下:pu

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

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