即时通讯系统设计说明书.docx
- 文档编号:12179916
- 上传时间:2023-04-17
- 格式:DOCX
- 页数:50
- 大小:441.17KB
即时通讯系统设计说明书.docx
《即时通讯系统设计说明书.docx》由会员分享,可在线阅读,更多相关《即时通讯系统设计说明书.docx(50页珍藏版)》请在冰豆网上搜索。
即时通讯系统设计说明书
本科毕业设计(论文)说明书
即时通讯系统的设计与实现
学院计算机工程学院
专业班级09软件工程1班
摘要
即时通讯软件是目前计算机用户进行交流最普遍的方式之一,各种各样的聊天软件也层出不穷;服务提供商也提供了越来越丰富的通讯服务功能。
即时通信中最基本的功能就是通过计算机之间的文本数据的互换的形式实现思想的交流和沟通,它的优点是方便快捷,为人们之间创建了一种新型的、廉价的、快速的、简便的沟通方式。
本文分析了即时通讯系统的原理及其实现过程,探讨了Socket技术与多线程技术在C/S模式下的局域网即时通讯系统的应用。
本毕业设计就是模拟QQ聊天软件,开发一个包括文字聊天、文件传输等功能的聊天软件。
系统主要采用C/S架构、C#编程语言、.NET开发平台、UDP通信协议以及Socket等技术来完成。
主要实现的功能有注册、登录、聊天、发送表情以及文件传输等功能。
系统采用客户机/服务器(C/S)的模式设计,是一个三层C/S结构,数据库服务器、应用程序服务器端、应用程序客户端,按照此设计思想,可以将任务合理分配到客户机端和服务器端,从而降低了系统的通信开销。
此系统共分为两个模块:
客户端模块和服务器端模块。
通过运行、测试与分析,该多功能聊天软件运行稳定、可靠,具有一定的实用价值。
关键词:
即时通讯;Socket;UDP;C#
Abstract
Instantmessagingsoftwareiscurrentlyoneofthemostcommoncomputeruserstocommunicatetheway,avarietyofchatsoftwarealsoemergeinanendlessstream;theserviceprovideroffersmoreandmorecommunicationservices.Instantcommunicationisthemostbasicfunctionisthetextdatabycomputerarerealizedintheformoftheexchangeofideasandcommunication,ithastheadvantageofconvenience,asanew,cheap,fast,convenientwaytocommunicatetocreateamongthepeople.
Thispaperanalyzestheprincipleofinstantcommunicationsystemanditsrealizingprocess,discussestheapplicationofSocketnetworktechnologyandmultithreadingtechnologyinC\/Smodeofinstantmessagingsystem.ThisgraduationdesignistosimulatetheQQchatsoftware,thedevelopmentofatextchat,filetransferandotherfunctionsofthechatsoftware.ThesystemmainlyusesC/Sarchitecture,C#programminglanguage,.NETdevelopmentplatform,UDPprotocolandSockettechnologytocomplete.Themainfunctionofregistration,login,chat,sendexpressionandfiletransferfunctions.Thesystemusesaclient/server(C/S)modedesign,isathreelayerC/Sstructure,databaseserver,applicationserver,clientapplicationprogram,accordingtothedesignidea,thesystemusestheC/Sstructure,therationalallocationoftaskstotheclientsideandserver,whichreducesthecommunicationoverheadsystem.Thissystemconsistsoftwomodules:
theclientandserverendmodule.Throughtestingandanalysis,operation,thismulti-functionchatsoftwareisstable,reliable,andhasacertainpracticalvalue.
Keywords:
InstantMessager;Socket;UDP;C#
第一章绪论
1.1即时通信系统的概念
即时通讯(InstantMessenger,简称IM),是指能够即时发送和接收互联网消息等的业务。
自1998年面世以来,特别是近几年的迅速发展,即时通讯的功能日益丰富,逐渐集成了电子邮件、博客、音乐、电视、游戏和搜索等多种功能。
即时通讯不再是一个单纯的聊天工具,它已经发展成集交流、资讯、娱乐、搜索、电子商务、办公协作和企业客户服务等为一体的综合化信息平台。
是一种终端连网即时通讯网络的服务。
即时通讯不同于e-mail在于它的交谈是即时的。
大部分的即时通讯服务提供了状态信息的特性──显示联络人名单,联络人是否在在线与能否与联络人交谈。
近年来,随着无线通信的快速发展,移动互联网为传统的Internet注入了新的活力,同时也为即时通讯带来了一场革命,交互双方已经不再局限于以网络终端设备为唯一的接入手段,PC机在传统的网络即时通讯中所起的作用正在被手机、平板电脑所取代。
这使得即时通讯更加大众化和人性化,即使不会使用电脑的人现在也可以享受到即时通讯给人们带来的变化。
纵观即时通讯软件业的迅速发展,设计并开发一个即时通讯平台,对于现阶段的学习和研究,都是极为有意义的,基于这个前提和起因,我选择了设计即时通讯系统作为我的毕业设计。
1.2国内外即时通讯的研究现状
从商业研究的方面看,即时通讯软件从最初的免费政策,到逐渐挖掘和整合创新多种盈利模式,即时通讯市场收入逐步扩大,而为企业用户提供商务即时通讯的一整套解决办法将成为未来即时通讯企业角逐的热点和盈利的新空间[1]。
即时通讯运营商的盈利模式包括互联网增值服务、无线网增值服务、广告服务和企业即时通讯服务。
以前,即时通讯运营商的盈利方式还仅局限于互联网即时通讯增值业务,但是随着市场的发展和功能的开发,无线网络增值业务和广告业务更多的参与到运营商整体收入中来[2]。
从学术化的即时通讯研究方面看,国内外公开发表的论文非常少[3]。
仅有的几篇集中在即时通讯基本服务元素的定义方面[4]与即时通讯软件技术实现、编程技巧等方面[5]。
还有部分关于安全性的讨论[6]。
总的说来,国内外关于即时通讯的研究还不够系统和深入。
1.3本课题的意义与主要工作内容
聊天软件作为使用最为广泛的即时性通讯工具,它在拥有文字聊天基础功能的同时,为满足用户的需求,还增加了文件传输的功能,成为现在最为主流的网上应用软件。
本论文主要对聊天软件的文字聊天、文件传输功能进行分析与研究,总结出实现的相关理论与知识。
本课题主要研究内容包括以下几个方面:
(1)查找相关书籍与文献,了解C/S构架并搭建.NET开发平台
(2)查找相关资料,学习C#开发语言以及SQLServer数据库的使用,
(3)查找现阶段基于局域网的即时通讯软件的发展现状以及相关功能
(4)Socket编程技术
在上述基础上,做出即时通讯软件的相关功能如下:
(1)用户注册功能
(2)用户登录功能
(3)添加好友功能
(4)添加分组功能
(5)删除好友功能
(6)删除分组功能
(7)移动好友到指定分组功能
(8)即时聊天功能
(9)文件传输功能
1.4论文的组织结构
第一章:
绪论。
第二章:
需求分析和可行性分析,分析了系统的需求和系统实施的可行性。
第三章:
数据库设计,介绍了本系统所使用的数据库、数据库的设计、数据库E-R图以及数据库关系图。
第四章:
详细设计,本章主要进行了系统的模块设计,包括多线程设计、服务器设计、数据库连接以及阐述系统各功能模块。
第五章:
重难点分析及解决方案,本章着重分析了本系统的重难点及其解决方案。
第六章:
系统测试与发布,本章主要介绍了系统测试的环节、展示了测试的结果以及系统的发布。
第七章:
系统的不足与展望,主要陈述了本系统存在哪些不足的地方以及对系统的展望。
第二章需求分析和可行性分析
2.1需求分析
此次开发的网络聊天工具可作为企业局域网的交流工具使用,通信的安全性不是很高,但要求信息的响应速度要较快,让用户充分享受到网络即时消息的方便和快捷。
本聊天工具由服务器端程序和客户端程序两部分组成,整体采用.NET平台开发,采用UDP通信协议,使用Socket技术。
服务器是可以进行监听,记录客户端请求和验证客户端身份的合法性,客户端程序面向实际用户,它有必要的界面的按钮,向用户提供网络即时消息的功能。
2.1.1系统包含的功能
本聊天系统需包含如下基本功能:
(1)客户端的主要功能:
●用户注册
●用户登录
●添加好友
●获取好友列表
●与好友聊天
●发送表情功能
●文件传输
(2)服务器端的主要功能:
●启动服务
●建立连接
●监听客户请求
2.1.2功能模块
聊天工具由服务器端和客户端组成,要分析清楚两方面所要完成的任务,对设计来说,等于完成了一半。
根据聊天的通信步骤,系统的功能模块如图2-1所示。
(1)服务器端
服务器端完成3大功能:
建立连接、断开连接、监听客户请求。
这3大功能的具体含义如下:
●建立连接:
系统启动时建立连接,绑定本地计算机的一个端口,不断地监听是否有客户端请求连接或者断开连接。
●断开连接:
停止监听,系统断开连接。
●监听客户请求:
服务器端是个信息枢纽,所有向服务器端请求的客户端的信息都要传到服务器端,再由服务器根据客户端的请求按要求分发出去,客户端再向服务器端发送各种请求,如:
登录,发送消息,获取好友列表等。
图2-1系统功能模块图
(2)客户端
客户端完成以下几大功能:
用户注册、用户登录、添加好友、聊天功能、发送表情、文件传输功能。
●用户注册:
客户端与服务器建立通信通道,服务就收客户端的注册请求。
通过系统的注册界面,输入账号和密码,完成注册。
●用户登录:
客户端与服务器建立通信通道,随时接收来自服务器的监听。
通过系统的登录界面,输入账号和密码,然后发送到服务器进行验证。
如果验证通过,服务器则返回用户的好友信息。
●添加好友:
用户在登录系统之后可以添加好友。
●聊天功能:
客户在与好友建立通信连接后,便可以与好友进行聊天,聊天时发送的是文本信息。
●发送表情功能:
与好友聊天时,可在文本信息中插入表情。
●文件传输:
用户之间可以相互传送文件以实现文件共享。
2.2系统可行性分析
可行性分析(FeasibilityAnalysis)也称为可行性研究,是在系统调查的基础上,针对新系统的发开是否具备必要性和可能性,对新系统的开发从各方面进行分析和研究,以避免投资失误,保证新系统的开发成功。
可行性研究的目的就是用最小的代价在尽可能短的时间内确定问题是否能够解决。
2.2.1经济可行性分析
基于局域网、C/S架构的即时通讯系统在很多资料上都能找到,包括书本和网络上都有很多类似的系统,开发这样一个系统所需要的花费不是很大,需要的开发工具、需要的软件等都可以在网上找到试用版,不需要购买,所以不需要花费太多金钱,在经济上完全能够完成本系统的设计。
2.2.2人力可行性分析
完成本系统不需要太多的人力资源,有老师和同学的帮助,也可以在网上找到与本系统相关的很多资源,在人力资源上能够完成本系统的设计。
2.2.3技术可行性分析
基于.NET的即时通讯软件,实现一般通讯软件的基本功能(登录,聊天,退出),没有十分复杂的其他功能,如:
登录、添加好友、与好友聊天、传输文件等基本的功能,这些都能够运用所学的知识实现。
本系统使用的编程语言是C#语言,所使用的平台是.NET平台,对于VS2010的使用还是比较熟悉。
在校已学习过C#编程。
完成这个通讯软件的基础知识大都已经具备,同时,在网上也可以找到许多资料,如CSDN、看雪论坛等能够查到许多开源源代码,自己能够充分运用这些网络资源,完成这个毕业设计。
2.3开发环境和相关技术介绍
2.3.1开发环境
本设计是一个局域网即时通讯软件,要在短时间内开发出来并且满足客户要求,无论是硬件还是软件都要选择合适,要求如下:
开发设备完善;开发机器的性能必须稳定;操作系统的选择应该适当;开发出的程序可以在尽可能多的平台上运行;要求运行机配置尽可能低档。
对此,我选择的硬件环境和软件环境如下:
●硬件环境
(1)处理器:
IntelPentiumPIII或者更高的处理器
(2)内存:
256MB或更高
(3)网络:
局域网
●软件环境
(1)操作系统:
WindowsXP/Windows7
(2)开发平台:
MicrosoftVisualStudio2010
(3)开发语言:
C#
(4)数据库:
SQLServer2005
2.3.2MicrosoftVisualStudio2010介绍
VisualStudio是微软公司推出的开发环境。
VisualStudio2010同时带来.NETFramework4.0、MicrosoftVisualStudio2010CTP(CommunityTechnologyPreview-CTP),并且支持开发面向Windows的应用程序。
2.3.3.NET平台
.NET就是微软的用来实现XML,WebServices,SOA(面向服务的体系结构service-orientedarchitecture)和敏捷性的技术。
.NET是微软的新一代技术平台,为敏捷商务构建互联互通的应用系统,这些系统是基于标准的,联通的,适应变化的,稳定的和高性能的。
.NET是基于Windows操作系统运行的操作平台,应用于互联网的分布式。
2.3.4C#语言简介
C#是微软公司发布的一种面向对象的、运行于.NETFramework之上的高级程序设计语言。
C#是微软公司研究员AndersHejlsberg的最新成果。
C#看起来与Java有着惊人的相似;它包括了诸如单一继承、接口、与Java几乎同样的语法和编译成中间代码再运行的过程。
它是微软公司.NETwindows网络框架的主角。
2.3.5Socket技术
所谓Socket通常也称作“套接字”,应用程序通常通过“套接字”向网络发出请求或者应答网络请求。
根据连接启动的方式以及本地套接字要连接的目标,套接字之间的连接过程可以分为三个步骤:
服务器监听,客户端请求,连接确认。
服务器监听:
是服务器端套接字并不定位具体的客户端套接字,而是处于等待连接的状态,实时监控网络状态。
客户端请求:
是指由客户端的套接字提出连接请求,要连接的目标是服务器端的套接字。
为此,客户端的套接字必须首先描述它要连接的服务器的套接字,指出服务器端套接字的地址和端口号,然后就向服务器端套接字提出连接请求。
连接确认:
是指当服务器端套接字监听到或者说接收到客户端套接字的连接请求,它就响应客户端套接字的请求,建立一个新的线程,把服务器端套接字的描述发给客户端,一旦客户端确认了此描述,连接就建立好了。
而服务器端套接字继续处于监听状态,继续接收其他客户端套接字的连接请求。
2.3.6TCP/IP协议
TCP/IP是国际互联网所采用进行网际互连的通信协议[7],实际所称的TCP/IP协议包括了在国际互联网络应用的一组协议,互联网协议族是此协议族的另一个名字[8]。
(1)TCP协议
在因特网协议族(Internetprotocolsuite)四层协议中,TCP层是位于IP层之上,应用层之下的传输层。
不同主机的应用层之间经常需要可靠的、像管道一样的连接,但是IP层不提供这样的流机制,而是提供不可靠的包交换。
TCP服务提供了可靠性、有效流控制、数据流传输、多路复用技术和全双工操作等。
(2)UDP协议
UDP是UserDatagramProtocol的简称,中文名是用户数据报协议,是OSI参考模型中一种无连接的传输层协议,提供面向事务的简单不可靠信息传送服务,IETFRFC768是UDP的正式规范。
在选择使用协议的时候,选择UDP必须要谨慎。
在网络质量令人不十分满意的环境下,UDP协议数据包丢失会比较严重。
但是由于UDP的特性:
它不属于连接型协议,因而具有资源消耗小,处理速度快的优点,所以通常音频、视频和普通数据在传送时使用UDP较多,因为它们即使偶尔丢失一两个数据包,也不会对接收结果产生太大影响。
比如我们聊天用的ICQ和QQ就是使用的UDP协议。
2.3.7Client/Server结构(客户端/服务器模式)
Client/Server或客户/服务器模式:
Client和Server常常分别处在相距很远的两台计算机上,Client程序的任务是将用户的要求提交给Server程序,再将Server程序返回的结果以特定的形式显示给用户;Server程序的任务是接收客户程序提出的服务请求,进行相应的处理,再将结果返回给客户程序。
2.4本章小结
本章主要对本系统的相关技术进行介绍,对基于C/S即时通讯的原理有一定的了解,对数据信息在网络中传输的原理都有进一步的认识,从需求分析和可行性分析出发讲述系统的系统设计架构、需求分析、技术可行性分析以及对系统的开发环境和相关技术进行了详细的介绍。
为设计本系统构建了一定的理论体系。
第三章数据库设计
3.1SQLServer数据库介绍
SQLServer是一个关系数据库管理系统。
它最初是由Microsoft、Sybase和Ashton-Tate三家公司共同开发的,于1988年推出了第一个OS/2版本。
在WindowsNT推出后,Microsoft与Sybase在SQLServer的开发上就分道扬镳了,Microsoft将SQLServer移植到WindowsNT系统上,专注于开发推广SQLServer的WindowsNT版本。
Sybase则较专注于SQLServer在UNⅨ操作系统上的应用。
SQL是英文StructuredQueryLanguage的缩写,意思为结构化查询语言。
SQL语言的主要功能就是同各种数据库建立联系,进行沟通。
按照ANSI(美国国家标准协会)的规定,SQL被作为关系型数据库管理系统的标准语言。
SQL语句可以用来执行各种各样的操作,例如更新数据库中的数据,从数据库中提取数据等。
目前,绝大多数流行的关系型数据库管理系统,如Oracle,Sybase,MicrosoftSQLServer,Access等都采用了SQL语言标准。
3.2理论基础
设计关系数据库时,遵循不同的规范要求,设计出合理的关系型数据库,这些不同的规范要求被称为不同的范式,各种范式呈递次规范,越高的范式数据库冗余越小[9]。
(1)第一范式(1NF)就是无重复的域。
在任何一个关系数据库中,第一范式是对关系模式的设计基本要求,一般设计中都必须满足第一范式。
不过有些关系模型中突破了1NF的限制,这种称为非1NF的关系模型。
换句话说,是否必须满足1NF的最低要求,主要依赖于所使用的关系模型。
(2)第二范式(2NF)要求实体的属性完全依赖于主关键字。
(3)第三范式(3NF)要求一个关系中不包含已在其它关系已包含的非主键子信息。
数据库设计是进行系统开发的基础性工作,设计方案的好坏是影响开发的重要因素。
数据库设计要遵循以下原则[10]:
(1)数据的完整性:
保证数据库中的数据准确。
(2)数据的结构化:
数据库设计必须层次分明,分布合理。
数据库必须高度结构化,保证数据的结构化、规范化和标准化。
(3)减少数据冗余:
数据库系统应该尽量减少数据冗余,节省存储空间,提高数据质量。
消除数据库表中非主属性对主关键词的非完全依赖性和非主属性对主关键词的传递依赖性,将二维表转化为第三范式,是降低数据冗余的有效方式。
3.3数据库E-R图
用户和好友关系之间是多对多的关系,一个用户可以对应多个好友关系、一种好友关系只能对应一个用户。
数据库E-R图如图3-1所示。
图3-1数据库E-R图
3.4数据库设计
3.4.1数据库逻辑设计
即时通讯系统总共使用到了两张数据表,用户信息表与用户关系表。
用户信息表用来记录所有已注册的用户的登录账户、密码、姓名等信息,userid即用户账号为主键,word用于保存密码,name保存用户名字,用户信息表的详细结构如表3-1所示。
表3-1用户表
列名
数据类型
是否主键
可否为空
userid
varchar(50)
是
否
word
varchar(50)
否
否
name
varchar(50)
否
否
好友关系表用来记录用户的好友关系,其中userid为主键,friendid用来记录好友的ID,friendid不可以为空,好友关系表的详细结构如表3-2所示。
表3-2好友关系表
列名
数据类型
是否主键
可否为空
userid
varchar(50)
是
否
friendid
varchar(50)
否
否
3.4.2数据库物理设计
(1)表名:
用户信息表
此表用来记录所有已注册的用户的登录账户、密码、性别等信息,userid即用户账号为主键。
(2)表名:
用户关系表
此表用来记录用户的好友关系信息,userid为主键。
3.5数据库关系图
用户信息表的主键tmid作为好友关系表rtmid和rfriend的外键,输入好友的账号,添加成功后,好友的账号将会显示在好友列表中。
3.6本章小结
本章主要介绍了SQLServer数据库和数据库的设计。
数据库设计又包括数据表设计和存储过程的设计。
数据库表主要存储用户信息和好友关系信息,即时通讯系统连接数据库后便可以读取数据库中的信息。
第四章详细设计
4.1多线程设计
服务器需要和多个客户端同时进行通信,这就是服务器端的多线程。
一旦服务器发现一个新的客户端与之建立了连接,就马上新建一个线程与客户端进行通信。
用多线程的好处在于可以同时处理多个通信连接,不会出于由于数据排队而发生的延迟或者丢失,可以很好利用系统的性能[11]。
点击服务器端窗体的“开始服务”按钮,调用Listen开始监听,监听处理过程位于单独的线程中,Listen的实现方法如下:
publicvoidListen(intPort)
{
try
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 即时通讯 系统 设计 说明书