基于socket的网络聊天系统大学毕业论文.doc
《基于socket的网络聊天系统大学毕业论文.doc》由会员分享,可在线阅读,更多相关《基于socket的网络聊天系统大学毕业论文.doc(66页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、北京理工大学珠海学院2014届毕业设计(论文) 基于socket的网络聊天系统学 院: 计算机学院 专 业: 计算机科学与技术 姓 名: 苏国东 学 号: 100201021010 指导老师: 雷剑刚 职 称: 讲师 中国珠海二一四 年 四 月诚信承诺书本人郑重承诺:本人承诺呈交的毕业设计计算机科学与技术是在指导教师的指导下,独立开展研究取得的成果,文中引用他人的观点和材料,均在文后按顺序列出其参考文献,设计使用的数据真实可靠。本人签名: 日期: 年 月 日 基于socket的网络聊天系统摘要 随着科学技术的迅速提高,计算机网络得到了飞速的发展,而各种基于网络的应用程序也随之诞生,比如基于互联
2、网的信息发布,通信,数据共享等等。局域网技术作为人们日常生活中必不可少的部分同样得到了广泛的应用,人们通过局域网连接INTERNET进行数据传输及交换。因此开发一个局域网的即时通信工具是非常有必要的。本文围绕这个中心并进行了更为合理的设计在WINDOWS平台上进行了实现。将客户端与服务器端分开,用多线程实现不同的并行任务。能够满足一般用户最基本的要求,特点是简单方便,功能齐全,拓展性强。关键词:局域网; 即时通信; 客户端; 服务端; 多线程 LAN Instant Messaging SystemAbstract Along with the high-speed development o
3、f the science and technology, the technology based on computer network improved quickly. Various kinds of applications based on network was born, like information releasing, data sharing . .The LAN technology as an essential part of our daily life are also widely used . People transfer and exchange
4、data through LAN to connect with Internet. So its very necessary to develop a software which based on instant-message in LAN. So I make a new design, and implement it on windows platform. In my implementation the client and the server were separated in one program with multi thread mechanism and had
5、 a good GUI. It can satisfier most peoples demands. It was very easy to use and the function is very realizable. At last, it is also easy for expanding.Key words LAN; Instant Messaging; Client; Server; Multi thread 目 录1. 引言11.1 课题背景及意义11.2 课题现状11.3 研究目标21.4 开发平台与技术的选择及介绍21.4.1 开发环境的介绍21.4.2 WINDOWS
6、SOCKETS网络编程接口概述31.4.3 Vc6.0开发平台简介31.4.4 access数据库42. 需求分析及可行性研究52.1 系统分析概况52.2 系统需求分析52.2.1 功能要求62.2.2 性能要求62.3 系统可行性研究72.3.1 技术可行性72.3.2 经济可行性72.3.3 营运可行性73. 系统设计及编码实现83.1 系统基础认知83.1.1局域网简介83.1.2 TCP/IP 协议133.1.3Windows Sockets153.2 体系结构设计173.3功能模块分析203.3.1整体架构分析203.3.2 功能架构分析213.3.3 核心模块分析及代码223.4
7、 用户界面设计263.4.1 服务器端监控263.4.2 聊天状态图263.4.3 传输文件274. 系统测试294.1 白盒测试294.1.1 测试环境配置294.1.2 正确性测试304.2 黑盒测试304.2.1测试环境配置314.2.2功能性测试314.2.3容错性测试335. 系统总结与展望34参考文献35致 谢361. 引言1.1 课题背景及意义随着信息时代的到来,越来越多的企业建立部署了自己的信息管理系统来提高企业的工作效率和竞争力,即时通讯软件得到了越来越多的企业的青睐,不仅因为其提供了强大的即时通讯功能,而且因其作为EIM系统的重要成员,可以无缝地集成于企业业务管理的流程当中
8、去,从而更加有效提高企业协同办公的能力,更进一步成为一种先进的营销工具和客户服务工具。随着互联网和电子商务的普及,它的即时性、高效率和低成本的特质必能日益得到体现和发挥,而最终取代电话为王的呼叫中心时代。然而目前的大多数即时通信软件必须通过Internet,如果是企业内部网络没有连接到Internet,那就不能使用IM软件。因此鉴于这种现象有必要开发一种聊天工具,用来实现内部局域网之间的交流及通信。这种软件必须精简但强捍,能满足学校、企业、公司等等的内部交流。它最大的好处就是不需要连接internet就可以运行。这有利于提高学校、公司等的效率,提高对用户的监控性!本系统由客户端和服务器端组成。
9、服务器端可以即时监控各个用户之间的对话!本文将讨论一种基于Windows Socket的聊天工具的实现方法。由于Socket使用方便、功能强大、稳定性高等特点,所以得到广泛应用。用它开发的软件能有效地降低局域网通信负荷,提高局域网的使用效率,满足人们对即时通讯软件的期望。而且它应用范围极广,可以通过它进行扩展功能的延伸。除了最基本的聊天功能之外,还可以实现局域网内部的文件传输、语音聊天、视频聊天、视频会试等一系列功能。可以说Socket的作用是非常明显的,完全可以满足企业需要,可以广泛应用到各个行业中去。1.2 课题现状 即时通信(IM)是指能够即时发送和接收互联网消息等的业务。自1998年面
10、世以来,特别是近几年的迅速发展,即时通信的功能日益丰富,逐渐集成了电子邮件、博客、音乐、电视、游戏和搜索等多种功能。即时通信不再是一个单纯的聊天工具,它已经发展成集交流、资讯、娱乐、搜索、电子商务、办公协作和企业客户服务等为一体的综合化信息平台。基于局域网的即时通信工具,实际上是互联网即时通信工具的一个小规模版本,广域网上的即时通信工具,如今一般采用UDP或者 TCP协议体系来实现 ,开发技术已经比较成熟,比如较早的ICQ,MSN Messanger,Yahoo 通这些国外开发的产品,还有国产的有名的QQ,新浪UC,LAVA-LAVA等,这些工具统统都实现了广域网上的即时通信,尽管都是即时通信
11、,实现了即时聊天,以及文件传输的主要功能,但是也各有各的特色,比如ICQ的巨大客户群,MSN的个性化表情,YAHOO通的易操作性等。它们在大的方面无非就是各种利用各种平台上的网络通信接口,建构基于下层TCP/IP,或者UDP/IP协议的软件产品。在局域网内,这些功能的实现跟广域网相比更加简单,因为局域网的网络结构本身比广域网要复杂,但是又可以借些理解网络协议,以及网络通信工具的实现原理,所以仍然极具研究价值。1.3 研究目标本课题的目标是综合上述要求设计一个基于WINDOWS平台的聊天工具,并阐述本软件各模块的功能、特点及用途,以及介绍一下开发本软件所用到的各种软件、控件、技巧、编程思想等。1
12、.4 开发平台与技术的选择及介绍 1.4.1 开发环境的介绍由于本软件主要面对的对象是学校、企业、公司等等的内部交流,所以只有采用了好的开发环境才能设计出优秀的软件来。具体环境应当具备以下条件:开发机器要稳定;开发软件要完善;开发平台要完美;开发操作系统要适当;运行配置尽量低;运行平台尽量广。结合以上情况,我作出了以下选择:(1)硬件环境处理器:Intel Pentium PIII或更高处理器。 内存:128MB或更高。 网络:局域网。 以上只是最低配置,强烈建议选用高性能的机器,这样效果会更佳。(2)软件环境好的操作系统是成功的一半,有些操作系统可能和你的编程工具发生冲突,产生很多的BUG,
13、这是你无法估计的,可能会使你浪费很多时间。所以我们尽量选择好的编程环境。Windows XP平台现在已经可以称得上非常成熟了,Windows Vista平台虽然功能更强大,但是由于它本身的漏洞太多及各种不稳定因素包括对某些文件不支持导致不能在此被采纳。所以推荐使用Windows XP平台。Vc6.0 全称为Visual + 6.0,是微软公司推出的可视化编程工具MSDN之一,是目前世界上使用最广泛的程序开发工具。Vc6.0的主要功能特点是具有面向对象的可视化设计工具,非常适合用于图形界面的编程方式。操作系统:Windows XP 开发工具:VC6.0 1.4.2 WINDOWS SOCKETS
14、网络编程接口概述Windows Sockets是Windows下得到广泛应用的、开放的、支持多种协议的网络编程接口。Windows Sockets规范定义并记录了如何使用API与Internet协议族(IPS,通常我们指的是TCP/IP)连接,尤其要指出的是所有的Windows Sockets实现都支持流套接口和数据报套接口.应用程序调用Windows Sockets的API实现相互之间的通讯。Windows Sockets又利用下层的网络通讯协议功能和操作系统调用实现实际的通讯工作。Socket控件可以供Microsoft Acess、Visual Basic,Visual C+或Visua
15、l Foxpro的开发人员使用。这里使用Visual Basic为例。Socket控件可以使用两种协议:TCP协议和UDP协议。1.4.3 Vc6.0开发平台简介开发平台我选择Vc6.0,因为Vc是一种可视化的、面向对象和采用事件驱动方式的结构化高级程序设计语言,可用于开发Windows环境下的各类应用程序。它简单易学、效率高,且功能强大可以与Windows专业开发工具SDK相媲美。在Visual c+环境下,利用事件驱动的编程机制、新颖易用的可视化设计工具,使用Windows内部的广泛应用程序接口(API)函数,可以高效、快速地开发Windows环境下功能强大、图形界面丰富的应用软件系统。V
16、isual C+可以说是现在最为通用的开发工具之一,它提供了相当齐备的类库和友好的编程界面,虽然在提起开发的时候,人们通常想到的会是Delphi, Visual C, PowerBuilder等,但Visual C+从4.0版本开始也对数据库开发提供了比较好的开发环境,随着版本的升高,Visual C+从数据库的访问技术更加成熟,功能更加强大。Visual C+提供了多种多样的数据库访问技术ODBC API、MFC ODBC、DAO、OLEDB、ADO等。这些技术各自己的特点,它们提供了简单、灵活、访问速度快、可扩展性强的开发技术,这些正是Visual C+开发和其它开发工具相比的优势所在。归
17、纳起来可以概括为以下几个方面:简单性 首先,Visual C+提供的MFC类具有强大的功能,如果能够掌握会达到事半功倍的效果;一些开发向导简化应用程序的开发另外MFC ODBC和ADO数据库接口已经将一些底层的操作都封装在类中,用户可以方便地使用这些接口,而无需编写操作数据库地底层的代。可扩展性 Visual C+提供的OLE 技术和ActiveX技术可以让开发者利用Visual C+中提供的各种组件、控件以及第三方开发者的组件来创建自己的程序,从而实现应用程序的组件化,而组件化的应用程序则会具有良好的扩展性。访问速度快Visual C+为了解决利用ODBC开发的数据库应用程序访问数据库速度慢
18、的问题,提供了新的访问技术,即OLEDB和它的高层接口ADO,它们是基于COM接口的技术,因此使用这种技术右以直接到数据库的驱动程序进行访问,从而提高访问速度。数据源友好传统的ODBC技术只能访问关系型数据库,而在Visual C+中通过OLEDB访问技术不仅可以访问关系数据库,还可以访问非关系数据库。本系统利用Visual C+作为前台开发工具编制了查询、检索模块。用户可以通过预先定义的任何关键字来查找所需要的图档信息,与搜索特征相匹配的所有信息都显示在定制的数据窗口列表中,并允许用户通过CAD浏览详图。系统利用视图及索引实现了数据库信息的快速、可靠的查询。系统能够根据其权限大小,决定其是否
19、有权对查询结果进行浏览或编辑等处理,引导其进行相应的可能的操作。1.4.4 access数据库2. 需求分析及可行性研究2.1 系统分析概况系统分析是指在管理信息系统开发的生命周期中系统分析阶段的各项活动和方法,应用系统思想和系统科学的原理进行分析工作的方法与技术。系统分析阶段的目的,就是按照系统规划所定的某个开发项目范围内明确系统开发的目标和用户的信息需求,提出系统的逻辑方案。系统分析在整个系统开发过程中,是要解决“做什么”的问题,即根据系统规划所确定的范围,对现行系统进行详细调查,尽可能弄清楚用户对信息的需求,调查原信息系统的资源,输入,处理和输出,描述现行系统的业务流程,指出现行系统的局
20、限性和不足之处,确定新系统的基本目标和逻辑功能要求,也即提出新系统的逻辑模型,为下一阶段进行物理方案设计,解决“怎么做”提供依据。因此,这个阶段又称逻辑设计阶段。2.2 系统需求分析需求分析是指理解用户需求,就软件功能与客户达成一致,估计软件风险和评估项目代价,最终形成开发计划的一个复杂过程。从广义上理解:需求分析包括需求的获取、分析、规格说明、变更、验证、管理的一系列需求工程。需求分析就是分析软件用户的需求是什么.如果投入大量的人力,物力,财力,时间,开发出的软件却没人要,那所有的投入都是徒劳.如果费了很大的精力,开发一个软件,最后却不满足用户的要求,从而要重新开发过,这种返工是让人痛心疾首
21、的。需求分析之所以重要,就因为他具有决策性,方向性,策略性的作用,他在软件开发的过程中具有举足轻重的地位.大家一定要对需求分析具有足够的重视.在一个大型软件系统的开发中,他的作用要远远大于程序设计. 本系统为了能够实现局域网内的即时通信,将整个系统分为两个独立的模块:服务器模块和客户端模块。两个模块独立运行,各自作用。 图2-1需求分析结构图 分析 需求管理 验证 问题获取需求工程 需求开发 编写规格说明2.2.1 功能要求(1)客户端程序启动之后就能看到当前哪些机器在线,哪些可以与之进行对等通信。(2)一旦有某个网内的机器上线了,要有即时通知,并能及时更新用户界面中的用户列表。(3) 聊天界
22、面要人性化,下面是发送框,上面有已有聊天记录,并借助滚动条看到当次所有的聊天记录。(4) 服务器端可以对所有客户端进行监控。(5)实现文件传输的功能。(6)双击列表可以跳出对话框与在线成员进行聊天。2.2.2 性能要求首先,程序的稳定性要得到保证,能够应付各种突发状况,比如网络通信没有连接,用户下线等。对任何突发事件都要有相应的提示,尽量做到人性化。其次,程序要有良好的容错性,当用户进行非法操作时或者系统本身出现问题时要能以最好的方式退出程序,避免发生程序假死现象。再次,开发文档要有好的易理解性,如果系统又要交由别人接手开发,或者自己由于种种原因需要进行二次开发,那么要保证以后能够清晰的理解整
23、个系统的设计思路以及实现细节。最后,要求程序对所运行之系统的硬件条件要求尽可能低,运行时内存占用尽可能小,响应速度要尽可能快。并且不发生内存泄漏之类影响系统运行的错误事件。并且要求易于维护及扩展。所以应该采用模块化开发,各个模块之间不要有太多的联系,以免维护困难。2.3 系统可行性研究可行性研究的主要目标是:进一步明确系统的目标、规模与功能,对系统开发背景、必要性和意义进行调查分析并根据需要和可能提出开发系统的初步方案与计划。可行性研究是对系统进行全面的分析。通过调查分析,系统设计方案有以下三个可行性:2.3.1 技术可行性本系统采用Windows XP作为操作平台。本系统的应用程序开发平台选
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 基于 socket 网络 聊天 系统 大学毕业 论文
限制150内