本科毕设论文-—聊天系统设计与实现.doc





《本科毕设论文-—聊天系统设计与实现.doc》由会员分享,可在线阅读,更多相关《本科毕设论文-—聊天系统设计与实现.doc(41页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、聊天系统设计与实现聊天系统设计与实现目 录第1章 引言11.1 系统开发的背景11.2 聊天工具开发的目标21.3 聊天工具开发的现实意义2第2章 开发平台与相关知识简介32.1 系统综合要求32.2 C+ 简介32.3 MicroSoft. NET Framework 简介32.4 Microsoft DirectX SDK 简介32.5 NET 与多线程技术42.6 C/S结构与WINDOWS SOCKETS网络编程42.7 XML简介5第3章 需求分析63.1 用户需求63.2 系统功能需求63.3 性能要求63.4 测试环境规定73.5 可行性研究7第4章 系统设计74.1 系统目标7
2、4.2 系统功能结构84.3系统模块划分9第5章 系统模块详细设计95.1 文本聊天模块实现95.2 语音传输模块实现145.3 用户管理模块实现17第6章 系统测试216.1 系统测试概述216.2 白盒测试216.3 黑盒测试22第7章 主要问题及解决247.1 多线程问题247.2 套接字异常24结语24参考文献25附录26I基于C+的FeiQ的山西达内公司局域网聊天系统设计与实现基于c+的FeiQ的山西大内公司局域网聊天系统的设计与实现 文本、语音聊天 学生姓名:张 立 澎 指导教师:樊东燕 胡艳慧内容提要:随着计算机网络技术的发展,各种各样基于网络的应用也随之诞生,比如基于互联网的信
3、息发布,通信,数据共享等等。局域网的发展也同样迅速。很多政府机构,企业,学校,都是先以一个统一的局域网联结在一起,再分别接入INTERNET。因此基于局域网的即时通信工具,就这样应运而生了。本文提出了一个局域网聊天工具的设计,并在WINDOWS平台上加以了实现。本设计将语音聊天、文本聊天和功能综合在一个客户端程序之内,使用C#语言进行网络编程,用多线程实现不同的并行任务,并进行了人性化的界面设计,使用起来简单方便,并且功能十分合理,又易于扩展以及个性化定制。关键词:局域网 文本聊天 语音对话 可扩展标记语言 多线程1. 引言1.1 系统开发的背景当今世界正处于信息时代,计算机和通信网络是这一时
4、代所谓“信息基础设施”。随着网络的普及化,网络作为人们相互间沟通与交流联系的现代化工具日益重要,可以说现在人们的生活已经离不开网络。在现实生活中人们可以通过多种手段与家人亲戚朋友交流通讯,像电话,电子邮件等。但这些手段都有些缺点,要么费用太高,要么实时性不强,要么1次只能和1位好友进行交流。于是这就需要1种便宜,快速,能同时与多个好友进行通讯的网络工具的出现,而网络聊天工具就满足了这些需求,填补了这个空白。在互联网相当普及的今天,在互联网上聊天对很多“网虫”来说已经是家常便饭了。聊天室程序可以说是网上最简单的多点通信程序。一个简单的聊天室, 从程序员的观点来看就是在多个I/O端点之间实现多对多
5、的通信。广域网上的即时通信工具,如今一般采用UDP或者 TCP协议体系来实现,开发技术已经比较成熟,这些软件,在使用方面各有特色,在实现方面也各有所长,但基于这些产品正在商业运营阶段,其实现方式属于商业机密,具体细节不可能得知,但是它在大的方面无非就是利用各种平台上的网络通信接口,建构基于TCP/IP,或者UDP协议的软件产品。网络的飞速发展使网络应用程序的开发地位显的越来越重要,而网络应用程序的开发和传统应用程序的开发在思想和实现上有很大的区别,随着网络技术和数据库管理系统的发展,C/S体系结构在软件的开发中越来越流行。因为这种结构的应用软件可以充分发挥网络的作用和数据库系统的优势,以满足人
6、们各种应用的需求。1.2 聊天工具开发的目标本设计的主要工作是设计一个基于WINDOWS平台的局域网即时聊天工具,具体是采用P2P模式实现用户之间的通信,然后阐述本软件的功能、特点及使用方法,并详细阐述开发本软件所用的相关技术,具体分析本软件的各个模块的功能及实现方法,说明本软件的设计思想及方法。1.3 聊天工具开发的现实意义局域网聊天工具,是在局域网内部使用的,用户之间用来交流的一个工具,一般都具有文本聊天和文件传输功能。局域网聊天软件因其使用简单,系统资源消耗少等优点,成为各企事业单位等的局域网内广泛应用的软件之一。当前的局域网聊天工具有很多,最有名的算IPMSG(飞鸽传书)。Ipmsg能
7、够实现局域网内消息、文件传递。但是,ipmsg 在某些时候,在同一vlan下的用户,能够彼此看见对方,却不能通信,因为其采用的是udp协议作为消息传递协议,而这种传输是不稳定的,所以有时候能看到对方的用户之间不能实现互相通信,怎么办呢?一种解决方法就是,采用tcp协议,面向连接的传输层协议作为消息传递协议,开发出相应的网络应用程序就能够实现彼此连接的双方进行信息的传递。随着互联网的不断发展,“互联网要担当起通讯大任”的声音不绝于耳。未来的电信业务将呈现多元化格局。同样是话音业务,可能是PSTN网络(传统电话网)提供的,可能是Internet提供的,还可能是有线电视网络,甚至电力网、煤气管道网提
8、供的。而用户的选择也将包括电脑与电脑、电脑与电话、电话与电话、电话与(智能)手机等通话方式。这一切,都是以IP为基础的通讯网络,而非传统通讯模式的电信服务。所以,VOIP将是聊天工具的一个发展方向。现有的局域网聊天工具,一般都不具备语音聊天的功能,本软件集成了语音聊天模块,用户可以通过此软件实现语音互通,提高局域网用户之间信息传递效率以及交流质量。通过开发本软件,可以了解当前流行的voip技术,练习socket编程,扩展知识面,锻炼编程的能力等,所以极具研究价值。2. 开发平台与相关知识简介2.1 系统综合要求2.1.1 硬件要求:PC机:2台或者2台以上,RAM256MB以上,CPU400M
9、HZ以上,硬盘40GB以上、耳麦各2副局域网2.1.2 程序运行环境:系统开发平台:Microsoft Visual C+ 6.0 ;MicroSoft .NET Framework 系统开发语言:C+运行平台:Window2000,Windows Xp,Windows Server 2003运行环境:Microsoft Visual C+ 6.0分辨率:最佳效果 10247682.2 C+ 简介C+这个词在中国大陆的程序员圈子中通常被读做“C加加”,而西方的程序员通常读做“C plus plus”,“CPP”。 它是一种使用非常广泛的计算机编程语言。C+是一种静态数据类型检查的、支持多重编程
10、范式的通用程序设计语言。它支持过程化程序设计、数据抽象、面向对象程序设计、泛型程序设计等多种程序设计风格。2.3 MicroSoft .NET Framework 简介NET Framework 是由微软开发,一个致力于敏捷软件开发(Agile software development)、快速应用开发(Rapid application development)、平台无关性和网络透明化的软件开发平台。.NET是微软为下一个十年对服务器和桌上型软件工程迈出的第一步。NET 包含许多有助于Internet和Intranet应用迅捷开发的技术。.NET 也为编程界面(API)提供了新功能和开发工具。
11、这些革新使得程序设计员可以同时进行Windows应用软件和网络应用软件以及元件和服务(web service)的开发。.NET 提供了一个新的反射性的且面向对象程序设计编程界面。.NET 设计得足够通用化从而使许多不同高级语言都得以被汇集。2.4 Microsoft DirectX SDK 简介SDK 是 Software Development Kit 的缩写,中文意思就是“软件开发工具包”。这是一个覆盖面相当广泛的名词,可以这么说:辅助开发某一类软件的相关文档、范例和工具的集合都可以叫做 “SDK”。具体到我们这个系列教程,我们后面只讨论广义 SDK 的一个子集即开发 Windows 平台
12、下的应用程序所使用的 SDK。SDK提供了一整套开发 Windows 应用程序所需的相关文件、范例和工具的“工具包”。由于SDK 包含了使用 API的必需资料,所以人们也常把仅使用 API 来编写 Windows 应用程序的开发方式叫做“SDK 编程”。而 API 和 SDK 是开发 Windows 应用程序所必需的东西,所以其它编程框架和类库都是建立在它们之上的,比如 VCL 和 MFC,虽然他们比起“SDK 编程”来有着更高的抽象度,但这丝毫不妨碍它们在需要的时候随时直接调用 API 函数。2.5 .NET与多线程技术多线程是为了使得多个线程并行的工作以完成多项任务,以提高系统的效率。线程
13、是在同一时间需要完成多项任务的时候被实现的。在本质上和结构来说,.NET是一个多线程的环境。有两种主要的多线程方法是.NET所提倡的:使用ThreadStart来开始你自己的进程,直接的 (使用ThreadPool.QueueUserWorkItem)或者间接的(比如Stream.BeginRead,或者调用 BeginInvoke)使用ThreadPool类。线程的基类是System.Threading。所有线程通过CLI来进行管理。2.6 C/S结构与WINDOWS SOCKETS网络编程通常的通信工具,都采用客户机/服务器(C/S)体系结构,C/S结构是这样的一种结构:它包括一个客户机(
14、或前端),一个服务器(或称后端),客户机的作用是访问和处理远程服务器上的数据,服务器的作用是接收和处理客户机的数据请求。有时,可能有多个客户向同一个服务器同时请求服务,这就需要服务器决定怎样处理这些请求。Client/Server结构是当前数据库应用程序中极为流行的一种方式。尤其是网络技术的发展,使得当前很多系统都采用这种方式进行构造,其最大的优点是将计算机工作任务分别由客户端和服务器端来共同完成,这样有利于充分合理的利用系统资源。另外它的服务器端还可以将信息集中起来,任何客户机都可以通过访问服务器而获得所需的信息。Client/Server模型最终可归结为一种“请求/应答”关系。一个请求总是
15、首先被客户发出,然后服务器总是被动地接收请求,返回客户需要的结果。在客户发出一个请求之前,服务进程一直处于休眠状态。一个客户提出请求后,服务进程被“唤醒”并且为客户提供服务,对客户的请求做出所需要的应答,如图1所示。图1 客户机服务器通信结构示图为了方便Client/Server模型的网络编程,90年代初,由Microsoft联合了其他几家公司共同制定了一套WINDOWS下的网络编程接口,即Windows Sockets规范,它不是一种网络协议,而是一套开放的、支持多种协议的Windows下的网络编程接口。现在的Winsock已经基本上实现了与协议无关,你可以使用Winsock来调用多种协议的
16、功能,但较常使用的是TCP/IP协议。在IP连接领域有两种通信类型:面向连接的(Connection-oriented ) 和无连接的(Connectionless)。在面向连接的套接字中,使用TCP协议来建立两个IP地址端点之间的会话。一旦建立了这种连接,就可以在设备之间可靠地传输数据。为了建立面向连接的套接字,服务器端和客户端必须分别进行编程。在System.Net.Sockets 名空间下,有两个专门用于TCP协议编程的类:TcpClient类和TcpListener类。这两个类提供了直观的易于使用的属性和方法,从而降低了TCP协议编程的难度。一般情况下,使用TcpClient连接、发送
17、和接收数据,使用TcpListener监听是否有传入的连接请求,使用Close()方法释放与TcpClient关联的所有资源。C/S 模式下Windows socket编程示意图,如图2所示。图2 C/S 模式下socket编程具体到这个项目,服务器只是用来验证用户的登录,以及广播用户的登录状态等。具体的通信,采用P2P模式,每两个客户端要进行连接通信时都直接连通而不用通过服务器来进行信息的中转,这样设计的优点是既可以对用户进行管理,又不会造成服务器的通信负担。所以,系统结构将设计成如图3的方式。图3 客户机直接通信结构示图2.7 XML简介XML(Extensible Markup Lang
18、uage)即可扩展标记语言,它与HTML一样,都是SGML(Standard Generalized Markup Language,标准通用标记语言)。Xml是Internet环境中跨平台的,依赖于内容的技术,是当前处理结构化文档信息的有力工具。扩展标记语言XML是一种简单的数据存储语言,使用一系列简单的标记描述数据,而这些标记可以用方便的方式建立,虽然XML占用的空间比二进制数据要占用更多的空间,但XML极其简单易于掌握和使用。 XML与Access,Oracle和SQL Server等数据库不同,数据库提供了更强有力的数据存储和分析能力,例如:数据索引、排序、查找、相关一致性等,XML仅
19、仅是展示数据。事实上XML与其他数据表现形式最大的不同是:他极其简单。这是一个看上去有点琐细的优点,但正是这点使XML与众不同。 XML的简单使其易于在任何应用程序中读写数据,这使XML很快成为数据交换的唯一公共语言,虽然不同的应用软件也支持其它的数据交换格式,但不久之后他们都将支持XML,那就意味着程序可以更容易的与Windows、Mac OS, Linux以及其他平台下产生的信息结合,然后可以很容易加载XML数据到程序中并分析他,并以XML格式输出结果。XML的主要作用有:(1)丰富文件(Rich Documents)- 自定文件描述并使其更丰富 (2)属于文件为主的XML技术应用 (3)
20、标记是用来定义一块数据应该如何呈现 (4)解释数据(Metadata)- 描述其它文件或在线信息 (5)属于数据为主的XML技术应用 (6)标记是用来说明一块资料的意义 (7)组态档案(Configuration Files)- 描述软件的组态参数 3. 需求分析3.1 用户需求随着中小型企事业的不断发展,在企业内部实现局域网通信是必不可少的。局域聊工具就是一个非常好的局域网通信软件,它可以在职工不移动位置的情况下进行在线聊天、语音聊天。这样,可以大大提高企业的工作效率,便于企业内部职员的交流。根据用户对聊天工具的要求,可分为以下几点:1、 操作简单方便、界面简洁美观。2、 客户端能够注册新用
21、户3、 可以在局域网实现文字传输4、 可以实现局域网语音聊天5、 系统运行稳定、安全可靠3.2 系统功能需求这个程序要实现的功能如下:(1) 程序启动之后就能看到当前哪些机器在线,哪些可以与之进行对等通信。(2) 一旦有某个网内的机器上线了,要有即时通知,并能及时更新用户界面中的用户列表。(3)当双击某个列表项的时候,要弹出聊天对话框,可以在其中编辑要发送的聊天信息,并进行发送。(4)聊天界面要人性化,下面是发送框,上面有已有聊天记录,并借助滚动条看到当次所有的聊天记录。(5) 当有远程用户向本机发送文件的时候,要弹出一个消息提示框,提示本机用户,可以选择接收或者拒绝。(6) 当用户觉得有必要
22、保存聊天记录时,提供一个简单的聊天记录保存功能。(7) 文件传输过程中,应该有当前传输状态提示,并能够对传输耗时等进行计算,作为当前网络状态的一种反馈。3.3 性能要求首先要求程序要完全可靠,可以应付各种由于系统问题产生的错误,比如初始网络失败,对方突然下线等。要求提前设想到类似的尽可能多的可能发生的事件,做出相应的应对措施,并向用户提交简单易懂清晰明白的提示信息。程序要有良好的容错性,当用户进行非法操作时或者系统本身出现问题时要能以最好的方式退出程序,避免发生程序假死现象。开发文档要有好的易理解性,如果系统又要交由别人接手开发,或者自己由于种种原因需要进行二次开发,那么要保证以后能够清晰的理
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 本科 论文 聊天 系统 设计 实现

限制150内