基于.NET平台的聊天程序 毕业论文.doc_第1页
基于.NET平台的聊天程序 毕业论文.doc_第2页
基于.NET平台的聊天程序 毕业论文.doc_第3页
基于.NET平台的聊天程序 毕业论文.doc_第4页
基于.NET平台的聊天程序 毕业论文.doc_第5页
已阅读5页,还剩37页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

摘要 摘 要 随着网络技术的不断发展,网络聊天技术正成为目前产业界和科研机构密切关注的 焦点基于网络的聊天技术已成了近年来新兴的聊天交流方式网络聊天是在 20 世纪 90 年代发展起来的,它是在原有的面对面等通过动态声音为信息载体的基础上,增加了非 接触式的通过静态文字为载体的交流方式其限制性比较低,避免了沟通上的一线制约 因素;聊天系统就是提供了这些服务的具有动态交互功能的管理信息系统,它实现了一 个网络上的在线聊天;用户可以在聊天信息系统并根据自己的喜好和性格进行自己的交 流方式和寻找朋友这样,使用户足不出户就可随时随地地与人交流,摆脱了传统交流 方式在时间和空间的局限性,以及传统交流个人自身的因素的局限性,极大丰富了人们 的网络生活 随着互联网的迅速崛起,c/s 结构的系统可以在任何一台的计算机上使用,系统的部 署和维护只是在服务器上进行,这样的模式既能减少管理的成本,更重要的是它能很方 便的实现用户与系统的交互,更快地响应用户信息交互请求,加之微软 c#编程语言的提 出,众所周知,c#在窗体应用上的优势以及平台的独立性好、简便的窗体生成为 c/s 的 实现提供了很好的技术基础 由此,利用互联网覆盖面积广的优势,建立一个基于 c/s 结构的网络聊天系统,提 供以聊天为主的网络服务,来满足用户根据自己的意愿和沟通需求及其方便程度的追求, 丰富用户的网络生活和日常交际手段,必将受到越来越多用户的青睐 关键词:网络聊天;c#;互联网;c/s 结构 abstract i abstract with the development of network technology network chat technology is become the industry and scientific research institutions close attention. based on network chat technology in recent years has become the emerging chat communication. network chat is in the 1990s, it was developed in the original face to face for such information carrier by dynamic voice, on the basis of increased non-contact through the static text as the carrier type of communication. its restrictive is lower, avoid the gleam of restraining factors in communication; chat system is providing these services with dynamic interaction function of the management information system, it achieved a network of on-line chat; users can chatting in information system and the be fond of according to oneself and character in his own way to communicate and find friends. such user never leave home, can communicate with people anywhere at any time, from the traditional way of communication in time and space, and the limitations of traditional exchange individual factors, enriched the limitations of the network life people. as the internets rapid rise, c/s structure of system can be in any one computer use, the systems deployment and maint enance just on file server, such a model can not only reduce the cost management, more important is it can e asily achieve user and system interaction, to respond more quickly to user information interaction request, together with microsoft c # programming languages, as is known to all, put forward the application form on the c # the independence of the advantages and platform, simple form was born the realization of becoming c/s, provide good technology foundation. thus, using the internet to coverage area wide advantage, build a based on c/s structure of network chat system, and provide the network service mainly to chat to satisfy the users, according to his own will and communication needs and convenient degree of pursuit, rich users network life and daily communication means, will gets more and more users favor. keywords: online chat; c #; the internet; c/s structure 目录 目 录 摘 要 i abstract.i 目 录 ii 第 1 章 绪论 .1 1.1 选题背景及意义 .1 1.2 网络聊天简介 1 1.3 系统设计思想 2 1.4 可行性分析 .2 1.5 系统运行环境 2 第 2 章 相关技术概述 .3 2.1 .net framewok 框架结构概述 .3 2.1.1 .net framework 框架结构简介 .3 2.1.2 .net framework 三部分内容介绍 .3 2.2 c#概述 .5 2.2.1 效率与安全性6 2.2.2 c#编译器 visual studio.6 2.3 winform 简介 7 2.3.1 winform 的特点 7 2.4 客户端/服务器( client/server)结构概述 7 2.4.1 c/s 结构简介 .7 2.4.2 c/s 模式的优点、缺点 .8 2.5 socket 编程技术 .9 2.6 sql server 2005 概述 .10 2.7 ado.net 技术 10 第 3 章 需求分析 .11 3.1 系统需求分析 .11 3.2 系统功能需求 .11 3.3 数据处理需求 .12 3.4 系统性能需求 .12 第 4 章 系统分析与设计 .13 4.1 系统功能模块设计 .13 4.2 系统模块详细设计 .13 abstract iii 4.2.1 客户端功能模块设计13 4.2.2 服务器端功能模块设计16 4.3 系统整体流程图 .16 第 5 章 数据库设计 .19 5.1 概述 .19 5.2 数据库概念结构设计 .19 5.3 数据库逻辑结构设计 .20 5.3.1 用户信息实体属性图20 5.3.2 用户好友关系信息实体属性图20 5.4 数据表设计 .21 5.5 创建数据的存储过程 .21 第 6 章 系统详细设计与实现 .22 6.1 系统通用类设计 .23 6.1.1 数据库表结构类设计.23 6.1.2 服务器端模块数据库表操作类设计23 6.1.3 对数据库操作的封装24 6.2 界面及功能设计 .24 6.2.1 服务器主界面24 6.2.2 客户端界面25 6.3 系统实现过程中遇到的问题与解决 .32 6.3.1 socket 套接字异常问题 .32 6.3.2 多线程问题32 第 7 章 结论与展望 .34 7.1 结论 34 7.2 不足之处及未来展望 34 参考文献 .35 致 谢 .37 基于 .net 平台的聊天程序设计 1 第 1 章 绪论 1.1 选题背景及意义 internet 是目前世界上最大的计算机互联网络,它遍布全球,将世界各地各种规模的 网络连接成一个整体作为 internet 上一种先进的,易于被人们所接受的信息检索手段, world wide web(简称 www)发展十分迅速,成为目前世界上最大的信息资源宝库如今, 人们不仅可以在网上查询自己需要的资源,而且可以通过网络进行实时的沟通从实时 性和有效性上都超过了用信件和 email,并且在费用上要低于电话因而各种聊天服 务备受用户青睐,在这方面的开发与应用也较多,聊天服务也成为互联网提供的重要服 务之一,因此,建立一个好的在线交流聊天系统十分重要互联网的大多数网站都建有 聊天室,并且有专业聊天网站提供聊天服务然而 qq 等聊天工具虽然方便、实用,但是, 娱乐功能太多,有很多吸引人的娱乐功能,从一定程度上来说,是一种娱乐工具,不能 作为用于作为即时通讯、文件共享的专用工具目前,用于实现单一的即时通讯、文件 共享的软件实在太少,并且,它们中大部分都是绝对的 c/s 模式,对远程服务器有非常 大的依赖性,没有彻底实现点对点的交流在网络越来越发达的今天,人们对网络的依 赖越来越多,越来越离不开网络,由此而产生的聊天工具越来越多,类似 qq、网络聊天 时一类的聊天系统的发展日新月异但是,同时 qq 等现有的聊天程序也存在着很大的问 题比如,我在使用 qq 的时候,就对他发的各种“广告”深恶痛绝对于登陆后时不时 弹出的打扰窗口,很是厌烦因此我在本次作业的激励下,产生了一个制作类似 qq 的网 络聊天工具并且“无垃圾信息”洁净聊天工具的想法,而且希望通过制作该程序还能更 好的学习网络软件编程知识 1.2 网络聊天简介 网络聊天,英文简称 nc(network chat ),指的是按照用户的要求播放视频nc 有很 广泛的含义,包含了娱乐、教育、商业等领域的多种应用,如游戏聊天( chat in game) 、 在线语音聊天(online voice chat)、离线文件传输(offline file transfer) 和远程教学( long distance learning)等 网络聊天是在 20 世纪 90 年代发展起来的,它是在原有的面对面等通过动态声音为 信息载体的基础上,增加了非接触式的通过静态文字为载体的交流方式其限制性比较 低,避免了沟通上的一线制约因素;聊天系统就是提供了这些服务的具有动态交互功能 的管理信息系统,它实现了一个网络上的在线聊天;用户可以在聊天信息系统并根据自 己的喜好和性格进行自己的交流方式和寻找朋友这样,使用户足不出户就可随时随地 地与人交流,摆脱了传统交流方式在时间和空间的局限性,以及传统交流个人自身的因 素的局限性,极大丰富了人们的网络生活 1.3 系统设计思想 聊天系统利用.net 平台的 winform 技术和数据库技术,提供以文字聊天为中心的网 络文本传输服务,系统采用 c#作为编程语言技术,结合 c/s 结构模式,能动态实现与用 户的交互,满足用户添加好友和修改用户信息等需求,以及后台管理员对系统信息管理 的需求 1.4 可行性分析 计算机网络作为一种先进的信息传输媒体,有着信息传送速度快、信息覆盖面广、 成本低的特点随着信息技术的发展,利用 c#技术结合数据库技术来实现一个聊天系统, 提供以文字聊天为中心的网络文本传输服务,能更贴切的满足用户根据自己的意愿进行 无打扰的聊天的需求,也必将受到用户的青睐但是,开发任何一个基于计算机的系统, 都会受到时间和资源上的限制因此,在开发系统前必须进行可行性分析,以减少项目 的开发风险,避免人力、物力和财力的浪费可行性研究的目的,就是用最小的代价在 尽可能短的时间内确定问题能否解决对在聊天系统的可行性分析如下: 1、经济可行性分析:成本较低,系统建设不需要很大的投入,系统更新时也只需更 新服务器端程序,方便维护 2、技术可行性分析:系统采用.net 开发平台,.net framework 是.net 平台的基本 框架,具有强大的 api,给系统奠定了技术基础系统采用 c#.net 技术,结合 c/s 结构 模式,能够方便实现用户与系统的动态交互,以及方便信息的维护等 3、运行上可行性:本系统作为一个小型的聊天系统,所耗费的资源非常的小 综上所述通过可行性分析认为新系统的开发方案切实可行,可进行开发 1.5 系统运行环境 系统开发环境:microsoft visual studio 2005 系统开发语言: c# 运行平台:windows7 数据库:sql server 2005 基于 .net 平台的聊天程序设计 3 第 2 章 相关技术概述 2.1 .net framewok 框架结构概述 2.1.1 .net framework 框架结构简介 .net framework 是一个集成在 windows 中的组件,它支持生成和运行下一代应用 程序与 xml web services.net framework 旨在实现下列目标: 提供一个一致的面向对象的编程环境,而无论对象代码是在本地存储和执行,还是 在本地执行但在 internet 上分布,或者是在远程执行的 提供一个将软件部署和版本控制冲突最小化的代码执行环境 提供一个可提高代码(包括由未知的或不完全受信任的第三方创建的代码)执行安 全性的代码执行环境 提供一个可消除脚本环境或解释环境的性能问题的代码执行环境 使开发人员的经验在面对类型大不相同的应用程序(如基于 windows 的应用程序和 基于 web 的应用程序)时保持一致 按照工业标准生成所有通信,以确保基于 .net framework 的代码可与任何其他代 码集成 .net framework 的目的就是要建立 web services 以及因特网应用程序的工作变的简 单,它就相当于微软 web services 引擎许多程序设计师和使用者,非常渴望有一个完 善而且透明清楚的基础架构,来建立 web services(因特网服务) .net framework 就是 为了这个需求而提供的基础架构.netframework 提供了应用程序模型及关键技术,让 开发人员容易以原有的技术来产生、布署,并可以继续发展具有高安全、高稳定,并具 高延展的 web services对于.net framework 而言,所有的组件都可以成为 web services,web services 只不过是另一种型态的组件罢了微软将 com(component object model,组件对象模型)的优点整合进来,它可以不用像 com 那么严谨的来栓锁 两个对象,.net framework 以松散的方式来栓锁 web services 这种型态的组件这样的 结果让开发人员非常容易的发展出强而有力的 web 服务组件,提高了整体的安全及可靠 性,并且大大的增加系统的延展性 2.1.2 .net framework 三部分内容介绍 .net framework 包括了三大部分:第一个部分是 common language runtime(clr,公共语言运行时) ,第二部分是共享对象类别库(提供所有 .net 程序语 言所需要的基本对象) ,第三个部分是重新以组件的方式写成的 asp.net其中公共语言 运行时(clr)和 .net framework 类库是.net framework 的两个主要组件.net framework 的类库,是一个综合性的面向对象的可重用类型集合,可以使用它开发多种 应用程序,这些应用程序包括传统的命令行或图形用户界面 (gui) 应用程序,也包括基 于 asp.net 所提供的最新创新的应用程序(如 web 窗体和 xml web services) common language runtime 5 common language runtime(clr,公共语言运行时)架构在操作系统的服务上,它 是.net framework 的基础它负责应用程序实际的执行,满足所有的应用程序的需求; 例如内存管理、处理安全问题、整合不同的程序语言等等runtime 供了许多帮助程序写 作的简化,以及应用程序的部署并同时加强程序稳定可靠的一些服务 common language runtime 结构图,如图 2-1 所示: 图 2-1 common language runtime 结构图 想要执行由某种特定程序语言所开发出来的程序,计算机内部必需装置这种特定程 序语言的执行时期(runtime)组件才可以.为什么 runtime 组件如此重要?这是因为 runtime 组件内部有该种程序语言所需要的一些核心功能,例如提供该种语言所需要的基 本函式及对象等等;所以当程序在执行时会动态的连结到 runtime 组件,取得所需要的 功能.但是不同的程序语言所需要的 runtime 不一样,所以会造成程序设计师在开发时的 困难.所以为了要解决上述的问题,.net framework 在发展时,设计了让所有.net 的程 序语言共同使用的 runtime 组件,这个组件的名称就叫做 common language runtime(clr) clr 是一个高效率的执行引擎,程序代码的执行是由 runtime 所管理, runtime 负责的工作有产生对象、方法(methods)的呼叫等等,runtime 也可以提供程 序代码一些额外的服务我 们把要透过 clr 的控制才能执行的程序代码称 managedcode. 共享类库 .net 提供了一个让.net 所有程序语言使用的共享对象类别库,这个对象类别库提 供了几组统一、对象导向、结构化以及可扩充的对象类别库,协助程序设计师快速的开 发软件.共享对象类别库中提供了许多对象,包括集合、io、数据型态等等,也提供一些 对象类别可以存取操作系统服务,例如绘图、讯息、网络、执行绪与数据存取等等.程序 设计师可以直接建立.net 共享对象类别库所提供的对象,也可以呼叫共享对象类别库的 功能,或者藉由继承某个对象的功能来扩充自己建立的对象. 共享类库对象类别如图 2-2 所示: 图 2-2 共享类库包含的对象类别 asp.net asp.net 是共享对象类别库中的一员,asp.net 提供了一个 web 应用程序模 型这个模型提供了一些窗体、控件及基础架构,让程序设计师简单的建立 web 应用程 序asp.net 提供了一些对应 html 元素(例如按钮、清单盒等)的 html 控件 (html control)以及功能更强的 web 控件(web controls) ;这些控件在客户端执行, 然后在客户端的浏览器以 html 元素的方式显示.这种 html 控件在客户端以对象导向 的方式被程控,让程序设计师享受到对象导向程序写作的优点,简化程序的复杂性. asp.net 结构图,如图 2-3 所示: 图 2-3 asp.net 结构 7 2.2 c#概述 c sharp(又被简称为“c#“)是微软公司在二 ooo 年六月发布的一种新的编程语言,并定 于在微软职业开发者论坛(pdc)上登台亮相.c#是微软公司研究员 anders hejlsberg 的最新 成果.c# 看起来与 java 有着惊人的相似 ;它包括了诸如单一继承,界面,与 java 几乎同样的语 法,和编译成中间代码再运行的过程.但是 c#与 java 有着明显的不同,它借鉴了 delphi 的一 个特点,与 com(组件对象模型)是直接集成的,而且它是微软公司.net windows 网络框架 的主角微软 c#语言定义主要是从 c 和 c+继承而来的,而且语言中的许多元素也反映 了这一点c#在设计者从 c+继承的可选选项方面比 java 要广泛一些(比如说 structs), 它还增加了自己新的特点(比方说源代码版本定义).但它还太不成熟,不可能挤垮 java、 c#还需要进化成一种开发者能够接受和采用的语言而微软当前为它的这种新语言 大造声势也是值得注意的 2.2.1 效率与安全性 新兴的网络经济迫使商务企业必须更加迅速的应对竞争的威胁开发者必须不断缩 短开发周期,不断推出应用程序的新版本,而不仅仅是开发一个“标志性” 的版本c#在 设计时就考虑了这些问题它使开发者用更少的代码做更多的事,同时也不易出错支 持现有的网络编程新标准新的应用程序开发模型意味着越来越多地解决方案依赖于新出 现的网络标准,例如 html,xml,soap 等现存的开发工具往往都是早于 internet 出 现的,或者是在我们所熟知的网络还处于孕育期时出现的所以,它们一般无法很好地 支持最新的网络技术c#程序员可以在 microsoft .net 平台上事半功倍的构建应用程序 的扩展框架c#包含了内置的特性,使任何组件可以轻松转化为 xml 网络服务,通过 internet 被任何操作系统上运行的任何程序调用更突出的是,xml 网络服务框架可以使 现有的 xml 网络服务对程序员来说就和 c#对象一样这样,程序员就可以方便地使用 他们已有的面向对象的编程技巧来开发利用现有的 xml 网络服务还有一些精细的特性, 使得 c#成为一流的网络编程工具例如,xml 正逐渐成为在网络上传输结构化数据的标 准这种数据集合往往非常小为提高性能,c#允许把 xml 数据直接映射到 struct 数据 类型,而不是 class这样对处理少量的数据非常有效 2.2.2 c#编译器 visual studio visual studio 是微软公司推出的开发环境,visual studio 可以用来创建 windows 平 台下的 windows 应用程序和网络应用程序,也可以用来创建网络服务、智能设备应用程 序和 office 插件visual studio 提供了高级开发工具、调试功能、数据库功能和创新功 能,帮助在各种平台上快速创建当前最先进的应用程序visual studio 包括各种增强功能, 例如可视化设计器(使用 .net framework 3.5 加速开发)、对 web 开发工具的大量改 进,以及能够加速开发和处理所有类型数据的语言增强功能visual studio 为开发人员提 供了所有相关的工具和框架支持,帮助创建引人注目的、令人印象深刻并支持 ajax 的 web 应用程序开发人员能够利用这些丰富的客户端和服务器端框架轻松构建以客户为 中心的 web 应用程序,这些应用程序可以集成任何后端数据提供程序、在任何当前浏览 器内运行并完全访问 asp net 应用程序服务和 microsoft 平台 2.3 winform 简介 windows 窗体也称为 winforms,可以创建应用程序的用户界面,并使用任何一种 . net 支持的语言编写应用程序的功能winforms 应用程序一般都有一个或者多个窗体提 供用户与应用程序交互窗体可包含文本框、标签、按钮等控件大型 winforms 应用程 序有许多窗体,一些用于获取用户输入的数据,一些用于向用户显示数据,一些窗体会 有变形、透明等其他效果甚至让你看不出他的真实面目 2.3.1 winform 的特点 windows 窗体的一些重要特点如下: 1.简单强大:windows 窗体可用于设计窗体和可视控件,以创建丰富的基于 windows 的应用程序 2.新的数据提供程序管理:数据提供程序管理提供易于连接 oledb 和 odbc 数据源 的数据控件,包括 microsoft sql server、microsoft access、jet 、db2 以及 oracle 等 3.安全:windows 窗体充分利用公共语言运行库的安全特性这就意味着,一切都可 以通过 windows 窗体来实现,包括在浏览器中运行的不可信控件和用户硬盘上安装的完 全可信的应用程序 4.灵活的控件:windows 窗体提供了一套丰富的控件,并且开发人员可以定义自己有 特色的新的控件方便的数据显示和操作:应用程序开发中最常见的情形之一是在窗体 上显示数据windows 窗体对数据库处理提供全面支持可以访问数据中的数据,并在 窗体上显示和操作数据 5.向导:向用户提供创建窗体、数据处理、打包和部署等的分布指导 2.4 客户端/服务器( client/server)结构概述 2.4.1 c/s 结构简介 c/s(client/server)结构,即大家熟知的客户机和服务器结构它是软件系统体系结 构,通过它可以充分利用两端硬件环境的优势,将任务合理分配到client端和server端来 实现,降低了系统的通讯开销目前大多数应用软件系 统都是client/server形式的两层结构,由于现在的软件应用系统正在向分布式的web 应 用发展,web和client/server应用都可以进行同样的业务处理,应用不同的模块共享逻辑 组件;因此,内部的和外部的用户都可以访问新的和现有的应用系统,通过现有应用系 统中的逻辑可以扩展出新的应用系统这也就是目前应用系统的发展方向 传统的c s体系结构虽然采用的是开放模式,但这只是系统开发一级的开放性,在特 定的应用中无论是client端还是server端都还需要特定的软件支持由于没能提供用户真 正期望的开放环境,c/s结构的软件需要针对不同的操作系统系统开发不同版本的软件, 加之产品的更新换代十分快,已经很难适应百台电脑以上局域网用户同时使用而且代 9 价高,效率低如图2-1和图2-2所示: 图2-1 c/s结构图 图2-2 客户机服务器通信结构示图 2.4.2 c/s 模式的优点、缺点 (1)应用服务器运行数据负荷较轻 最简单的 c/s 体系结构的数据库应用由两部分组成,即客户应用程序和数据库服务 器程序二者可分别称为前台程序与后台程序运行数据库服务器程序的机器,也称为 应用服务器一旦服务器程序被启动,就随时等待响应客户程序发来的请求;客户应用 程序运行在用户自己的电脑上,对应于数据库服务器,可称为客户电脑,当需要对数据 库中的数据进行任何操作时,客户程序就自动地寻找服务器程序,并向其发出请求,服 务器程序根据预定的规则作出应答,送回结果,应用服务器运行数据负荷较轻 (2)数据的储存管理功能较为透明 在数据库应用中,数据的储存管理功能,是由服务器程序和客户应用程序分别独立 进行的,前台应用可以违反的规则,并且通常把那些不同的(不管是已知还是未知的) 运行数据,在服务器程序中不集中实现,例如访问者的权限,编号可以重复、必须有客 户才能建立定单这样的规则所有这些,对于工作在前台程序上的最终用户,是“透明” 的, 他们无须过问(通常也无法干涉)背后的过程,就可以完成自己的一切工作在客户服 务器架构的应用中,前台程序不是非常“瘦小” ,麻烦的事情都交给了服务器和网络在 c/s 体系的下,数据库不能真正成为公共、专业化的仓库,它受到独立的专门管理 client 客户端 server服务器 数据库 (3)c/s 架构的劣势是高昂的维护成本且投资大 首先,采用 c/s 架构,要选择适当的数据库平台来实现数据库数据的真正“ 统一”,使 分布于两地的数据同步完全交由数据库系统去管理,但逻辑上两地的操作者要直接访问 同一个数据库才能有效实现,有这样一些问题,如果需要建立“实时” 的数据同步,就必须 在两地间建立实时的通讯连接,保持两地的数据库服务器在线运行,网络管理工作人员 既要对服务器维护管理,又要对客户端维护和管理,这需要高昂的投资和复杂的技术支 持,维护成本很高,维护任务量大 其次,传统的 c/s 结构的软件需要针对不同的操作系统系统开发不同版本的软件, 由于产品的更新换代十分快,代价高和低效率已经不适应工作需要在 java 这样的跨 平台语言出现之后,b/s 架构更是猛烈冲击 c/s,并对其形成威胁和挑战 2.5 socket 编程技术 microsoft.net framework 为应用程序访问 internet 提供了分层的、可扩展的以及受管 辖的网络服务,其名字空间 system.net 和 system.net.sockets 包含丰富的类可以开发多种 网络应用程序.net 类采用的分层结构允许应用程序在不同的控制级别上访问网络,开发 人员可以根据需要选择针对不同的级别编制程序,这些级别几乎囊括了 internet 的所有需 要- 从 socket 套接字到普通的请求 /响应,更重要的是,这种分层是可以扩展的,能够适 应 internet 不断扩展的需要 抛开 iso/osi 模型的 7 层构架,单从 tcp/ip 模型上的逻辑层面上看,.net 类可以视 为包含 3 个层次:请求/响应层、应用协议层、传输层 webreqeust 和 webresponse 代 表了请求/响应层,支持 http、tcp 和 udp 的类组成了应用协议层,而 socket 类处于传输 层 传输层位于这个结构的最底层,当其上面的应用协议层和请求/响应层不能满足应用 程序的特殊需要时,就需要使用这一层进行 socket 套接字编程 而在.net 中, system.net.sockets 命名空间为需要严密控制网络访问的开发人员提供 了 windows sockets (winsock) 接口的托管实现 system.net 命名空间中的所有其他网络 访问类都建立在该套接字 socket 实现之上,如 tcpclient、tcplistener 和 udpclient 类 封装有关创建到 internet 的 tcp 和 udp 连接的详细信息;networkstream 类则提供用 于网络访问的基础数据流等,常见的许多 internet 服务都可以见到 socket 的踪影,如 telnet、 http、email、echo 等,这些服务尽管通讯协议 protocol 的定义不同,但是其基础 的传输都是采用的 socket 其实,socket 可以象流 stream 一样被视为一个数据通道,这个通道架设在应用程序 端(客户端)和远程服务器端之间,而后,数据的读取(接收)和写入(发送)均针对 这个通道来进行 可见,在应用程序端或者服务器端创建了 socket 对象之后,就可以使用 send/sentto 方法将数据发送到连接的 socket,或者使用 receive/receivefrom 方法接收来自连接 socket 的数据;针对 socket 编程,.net 框架的 socket 类是 winsock32 api 提供的套接字服 11 务的托管代码版本其中为实现网络编程提供了大量的方法,大多数情况下,socket 类 方法只是将数据封送到它们的本机 win32 副本中并处理任何必要的安全检查. 2.6 sql server 2005 概述 sql server 是一个关系数据库管理系统.sql server 2005 的特性有: 1.internet 集成.sql server 2005 数据库引擎提供完整的 xml 支持.它还具有构成最 大的 web 站点的数据存储组件所需的可伸缩性、可用性和安全功能sql server 2005 程序设计模型与 windows dna 构架集成,用以开发 web 应用程序,并且 sql server 2005 支持 english query 和 microsoft 搜索服务等功能,在 web 应用程序中包含了用户 友好的查询和强大的搜索功能. 2.可伸缩性和可用性.同一个数据库引擎可以在不同的平台上使用,从运行 microsoft windows 98 的便携式电脑,到运行 microsoft windows 2005 数据中心版的大型多 处理器服务器.sql server 2005 企业版支持联合服务器、索引视图和大型内存支持等功能, 使其得以升级到最大 web 站点所需的性能级别. 3.企业级数据库功能.sql server 2005 关系数据库引擎支持当今苛刻的数据处理环境 所需的功能.数据库引擎充分保护数据完整性,同时将管理上千个并发修改数据库的用户 的开销减到最小.sql server 2005 分布式查询使您得以引用来自不同数据源的数据,就好 象这些数据是 sql server 2005 数据库的一部分,同时分布式事务支持充分保护任何分 布式数据更新的完整性.复制同样使您得以维护多个数据复本,同时确保单独的数据复本 保持同步.可将一组数据复制到多个移动的脱接用户,使这些用户自主地工作,然后将他 们所做的修改合并回发布服务器. 4.易于安装、部署和使用. sql server 2005 中包括一系列管理和开发工具,这些工具 可改进在多个站点上安装、部署、管理和使用 sql server 的过程.sql server 2005 还支 持基于标准的、与 windows dna 集成的程序设计模型,使 sql server 数据库和数据 仓库的使用成为生成强大的可伸缩系统的无缝部分.这些功能使您得以快速交付 sql server 应用程序,使客户只需最少的安装和管理开销即可实现这些应用程序. 2.7 ado.net 技术 ado.net 是在 .net framework 平台中负责数据存储的对象ado.net 是 active data objects2.6(ado)的后续版本 ado.net 的主要目的是可以在.net framework 中更 容易的创建分布式的数据共享的应用程序ado.net 建立在如 xml 的业界的基础之上, 就像 ado,它提供了一个数据访问接口,以便和 ole db 兼容的数据源进行通信,如 sql server 或 oracle应用程序可以使用 ado.net 连接这些数据源,并检索,处理和更 新数据;使用 ado.net 最重要的理由是可以获取一个真正断开连接的数据体系结构和 xml 的紧密集成和一个通用的数据表示法,可以将各种不同数据源中的数据组合起来, 并优化了和数据库交互的功能,同样 ado.net 和 net.framework 的其它部分紧密的集 成在一起,并充分利用 net.framework 中所有对象的层结构及设计模式 ado.net 建立 在 ado 的基础之上,而且为数据访问工具集提供了许多工具 第 3 章 需求分析 3.1 系统需求分析 为了开发出真正满足用户需求的软件产品,首先必须知道用户的需求对软件需求 的深入理解是软件开发工作获得成功的前提条件,不论我们把设计和编码工作做得如何 出色,不能真正满足用户需求的系统只会令用户失望,给开发者带来烦恼. 网络聊天的出现,最初是源于人们对远程通信、远程帮助的需求发展到现在的远程 群聊、远程教育、远程控制以及语音聊天和视屏聊天.在传统的聊天中,要求人们面多面 的聊天近距离的的沟通.虽然可以通过电话进行远程没接触式的聊天,但是这种聊天费用 高昂,对于对身体的健康也有一定的影响而且电话聊天对于偏远地区效果并不好,在当 今如此快节奏的生活中,在高速发展的信息经济中,用户没能在恰当的时间通过交流接 受到自己有用的信息是常有发生的事情.这对于用户的日常生活会产生极大影响,用户希 望可以根据自己的时间和安排进行方便的信息交换,不必遵守传统的聊天时间机制,可 以随时随地的联系、表述自己的想法与朋友进行感情的交流.并且随着网络技术的不断发 展,人们越来越习惯于利用网络来实现所需的服务,网络信息经济时代的来临,因此, 建立一个基于网络的聊天系统,以其不受时间与空间的限制,向用户提供以文本信息传 输为中心的服务,动态地实现与用户间的信息交互,必能满足广大用户的需求,该系统 主要分为两部分:客户端和服务器端两部分.系统所要实现的功能主要是方便用户进行网 络聊天. 3.2 系统功能需求 初步将在聊天系统分为两个模块:客户端模块及服务器模块; 客户端功能包括: 用户登录:建立与服务器的连接并登陆,能显示登陆错误信息,以及配置登陆的服 务器 ip 地址和端口号. 用户注册:连接本地数据库,注册用户号码,并保存该用户,同时将信息返回给客 户端. 聊天功能:与好友进行聊天 信息显示:显示好友的在线列表和好友的离线列表. 聊天纪录:能够记录当前界面的聊天记录. 登录提示:显示欢迎界面. 信息提示:能够播放提示音,提示用户有人向其发送聊天邀请. 头像闪烁提示:在收到消息而聊天面板未打开时,对你发出聊天信息的好友头像闪 烁. 发送窗口抖动:发送提示声音并对好友的聊天窗体进行颤动激活. 添加好友:能够通过连接本地数据库进行添加好友. 13 删除好友:能够通过连接本地数据库进行删除好友. 服务器端功能包括: 登陆信息:检查登陆信息是否正确,并向客户端返回登陆信息,如信息正确就将在 线用户好友列表和离线好友列表发给该用户,并将该用户的状态发给各在线用户并更新 其在线好友列表和离线好友列表. 消息发送:服务器打开监听,当接收到客户端发送的消息建立线程通过 sockets 套接 字转发消息. 操作数据库:服务器端对数据库里的数据表进行映射生成在线好友列表和离线列表. 用户下线:将此用户下线消息发给各客户端,并改写用户在服务器端的状态,更新 客户端的在线好友列表和离线列表. 3.3 数据处理需求 对用户信息的处理需求:包括查询好友信息、添加好友关系信息、删除好友关系信息; 对聊天信息的处理需求:包括发送字符串、接收并显示字符串、保存当前界面的信 息 3.4 系统性能需求 一个系统的性能包括信息系统的效率、处理方式、可靠性、安全性、适应性等内 容效率是信息系统的处理能力、处理速度、吞吐量、响应时间等与系统处理时间有关 的性能要素处理方式涉及的范围比较宽,包括信息系统的结构和分布模式、交互方式、 业务处理方式等可靠性是保证系统正常工作及抗故障、抗干扰的能力,它包括:保证 系统正常工作的能力;对系统故障的预防、检测以及自动纠错的能力;出现故障时,保 证系统不发生崩溃,并使系统重新恢复、重新启动的能力等安全性是保证合法用户能 够正确使用信息系统,并防止非法用户访问信息系统的能力适应性是信息系统对外部 环境和需求变化的适应能力 根据系统的性能需求,在聊天系统的开发主要要实现的目标有以下几个方面: (1)界面设计友好、美观. (2)数据存储安全、可靠. (3)信息分类清晰、准确. (4)数据查询的灵活性. (5)实现对聊天信息的展示. (6)提供好友关系信息的添加、删除功能,方便用户操作. (7)具有易维护性和易操作性. 第 4 章 系统分析与设计 4.1 系统功能模块设计 按系统的功能需求分析,将系统功能模块分为两大模块:客户端功能模块和服务器 端功能模块. 客户端功能模块包括:用户登录模块、用户注册模块、软件版权模块、显示好友模 块、在线聊天模块、添加好友模块、删除好友模块; 服务器功能模块包括:服务器登录模块. 根据系统功能模块设计,系统的整体功能结构图如图 4-1 所示: 基于.net 平台的聊天系统 客户端功能 用 户 注 册 用 户 登 录 服务器端功能 滚动 和通 知区 域图 标 开 启 监 听 服 务 删 除 好 友 在 线 聊 天 添 加 好 友 显 示 好 友 图4-1 系统整体功能结构图 4.2 系统模块详细设计 4.2.1 客户端功能模块设计 (1)用户注册设计流程如下:输入要注册的用户名和密码,系统会检查用户名是 否已经存在,如果不存在,就允许注册新用户并发回数据库自动生成的用户 id模块流 程图如图 4-2 所示: 15 用户名是否存在? 生成注册用户 注册用户 不存在 存在 返回生成酷熊号返回生成用户 id 图 4-2 用户注册流程图 (2)用户登录设计流程如下:首先判断服务器的端口号是否配置正确,然后判断 输入的用户名和密码是否正确,正确就用户登录模块流程图如图 4-3 所示: 端口是否正确 用户登录 不存在 不正确 用户名和密码是否 正确 图 4-3 用户登录流程图 (3)滚动和通知区域图标设计流程如下:在登录成功后,生成窗体的 notifyicon 图标和一个滚动的欢迎图标 (4)显示好友设计流程如下:在登录成功后,服务器将为用户对数据库的表进行 映射获得在线好友的列表和离线好友的列表通过 socket 套接字发送过去,显示好友模块 在显示面板上显示好友 (5)在线聊天设计流程如下:先判断好友是否在线,进入聊天界面中写入发送的 信息,通过服务器监听到发送好友消息在转发给好友,进行在线聊天,其还整合发送震 动框提示功能、头像闪烁提示以及声音提示功能模块流程图如图 4-4 所示: 是否在线? 用户 1 是 发送消息 服务器端 是否在线? 用户 2 发送消息 图 4-4 在线聊天模块流程图 (6)添加好友设计流程如下:首先通过进行查询操作判断用户是否已经加过其好 友,然后进行添加好友关系模块流程图如图 4-5 所示: 是否已加其为好友? 查询好友 否 是 添加好友 图 4-5 添加好友模块流程图 (7)删除好友设计流程如下:首先通过进行查询操作判断用户是否是在操作自己 的好友关系,然后判断是否是好友关系,如果是就删除好友关系模块流程图如图 4-6 所 示: 密码和用户 id 是否匹配? 查询用户 id 是 否 删除好友 是否存在好友关 系? 是 图 4-6 删除好友模块流程图 17 4.2.2 服务器端功能模块设计 服务器端功能模块就是服务器监听模块: 服务器监听模块.设计流程如下:首先判断服务器的端口是否更该,配置好端口号开 启服务器开始监听,监听到用户登录消息,客户端进行操作数据库验证,正确就建立 socket 连接,并读取其在线

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论