1、摘要 摘 要 随着网络技术的不断发展,网络聊天技术正成为目前产业界和科研机构密切关注的焦点 基于网络的聊天技术已成了近年来新兴的聊天交流方式 网络聊天是在 20 世纪 90 年代发展起来的,它是在原有的面对面等通过动态声音为信息载体的基础上,增加了非接触式的通过静态文字为载体的交流方式 其限制性比较低,避免了沟通上的一线制约因素;聊天系统就是提供了这些服务的具有动态交互功能的管理信息系统,它实现了一个网络上的在线聊天;用户可以在聊天信息系统并根据自己的喜好和性格进行自己的交流方式和寻找朋友 这样,使用户足不出户就可随时随 地地与人交流,摆脱了传统交流方式在时间和空间的局限性,以及传统交流个人自
2、身的因素的局限性,极大丰富了人们的网络生活 随着互联网的迅速崛起, C/S 结构的系统可以在任何一台的计算机上使用,系统的部署和维护只是在服务器上进行,这样的模式既能减少管理的成本,更重要的 是它能很方便的实现用户与系统的交互,更快地响应用户信息交互请求,加之微软 C#编程语言的提出,众所周知, C#在窗体应用上的优势以及平台的独立性好、简 便 的窗体生成为 C/S 的实现提供了很好的 技术基础 由此,利用互联网覆盖面积广的优势,建立一个基于 C/S 结构 的网络聊天系统,提供以聊天为主的网络服务,来满足用户根据自己的意愿和沟通需求及其方便程度的追求,丰富用户的网络生活和日常交际手段,必将受到
3、越来越多用户的青睐 关键词: 网络聊天 ; 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. Netw
4、ork 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
5、; 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
6、 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 sy
7、stem 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
8、 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 o f b e c o m i n g C / S , p r o v i d e g o o d t e c h n o l o g y f o u n d a t i o n . Thus, using the Inte
9、rnet 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,
10、 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
11、.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
12、3.2 系统功能需求 .11 3.3 数据处理需求 . 12 3.4 系统性能需求 . 12 第 4 章 系统分析与设计 . 13 4.1 系统功能模块设计 . 13 4.2 系统模块详细设计 . 13 Abstract iii 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 数据表设计 . 2
13、1 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 致 谢
14、. 错误 !未定义书签。 基于 .NET 平台的聊天程序设计 1 第 1 章 绪论 1.1 选题背景及意义 Internet 是目前世界上最大的计算机互联网络,它遍布全球,将世界各地各种规模的网络连接成一个整体 作为 Internet 上一种先进的,易于被人们所 接受的信息检索手段, World Wide Web(简称 WWW)发展十分迅速,成为目前世界上最大的信息资源宝库 如今,人们不仅可以在网上查询自己需要的资源,而且可以通过网络进行实时的沟通 从实时性和有效性上都超过了用信件和 E Mail,并且在费用上要低于电话 因而各种聊天服务备受用户青睐,在这方面的开发与应用也较多,聊天服务也成为
15、互联网提供的重要服务之一,因此,建立一个好的在线交流聊天系统十分重要 互联网的大多数网站都建有聊天室,并且有专业聊天网站提供聊天服务 然而 QQ 等聊天工具虽然方便、实用,但是,娱乐功 能太多,有很多吸引人的娱乐功能,从一定程度上来说,是一种娱乐工具,不能作为用于作为即时通讯、文件共享的专用工具 目前,用于实现单一的即时通讯、文件共享的软件实在太少,并且,它们中大部分都是绝对的 C/S 模式,对远程服务器有非常大的依赖性,没有彻底实现点对点的交流 在网络越来越发达的今天,人们对网络的依赖越来越多,越来越离不开网络,由此而产生的聊天工具越来越多,类似 QQ、网络聊天时一类的聊天系统的发展日新月异
16、 但是,同时 QQ 等现有的聊天程序也存在着很大的问题 比如,我在使用QQ 的时候,就对他发的各种“广告”深恶 痛绝 对于登陆后时不时弹出的打扰窗口,很是厌烦 因此我在本次作业的激励下,产生了一个制作类似 QQ 的网络聊天工具并且“无垃圾信息”洁净聊天工具的想法,而且希望通过制作该程序还能更好的学习网络软件编程知识 1.2 网络 聊天 简介 网络聊天 ,英文简称 NC(Network chat ),指的是按照用户的要求播放视频 NC 有很广泛的含义,包含了娱乐、教育、商业等领域的多种应用,如 游戏聊天 ( Chat In Game)、在线 语音聊天 (Online voice chat)、 离
17、线文件传输 (Offline file transfer)和远程教学 ( Long Distance Learning)等 网络聊天是在 20 世纪 90 年代发展起来的,它是在原有的面对面等通过动态声音为信息载体的基础上,增加了非接触式的通过静态文字为载体的交流方式 其限制性比较低,避免了沟通上的一线制约因素;聊天系统就是提供了这些服务的具有动态交互功能的管理信息系统,它实现了一个网络上的在线聊天;用户可以在聊天信息系统并根据自己的喜好和性格进行自己的交流方式和寻找朋友 这样,使用户足不出户就可随时随地地与人交流,摆脱了传统交流方式在时间和空间的局限性,以及传统 交流个人自身的因素的局限性,
18、极大丰富了人们的网络生活 1.3 系统设计思想 聊天 系统 利用 .Net 平台的 Winform技术和数据库技术,提供以 文字聊天 为中心的 网络文本传输 服务,系统采用 C#作为 编程语言 技术,结合 C/S 结构模式,能动态实现与用户的交 互,满足用户 添加好友和修改用户信息等需求, 以及后台管理员对 系统 信息管理的需求 1.4 可行性分析 计算机网络作为一种先进的信息传输媒体,有着信息传送速度快、信息覆盖面广、成本低的特点 随着信息技术的发展,利用 C#技术结合数据库技术来实现一个 聊天 系统,提供 以文字聊 天为中心的网络文本传输服务 ,能更贴切的满足用户根据自己的意愿 进行无打扰
19、的聊天 的需求,也必将受到用户的青睐 但是,开发任何一个基于计算机的系统,都会受到时间和资源上的限制 因此,在开发系统前必须进行可行性分析,以减少项目的开发风险,避免人力、物力和财力的浪费 可行性研究的目的,就是用最小的代价在尽可能短的时间内确定问题能否解决 对在 聊天 系统的可行性分析如下: 1、经济可行性分析:成本较低,系统建设不需要很大的投入,系统更新时也只需更新服务器端程序,方便维护 2、技术可行性分析:系统采用 .NET 开发平台, .NET Framework 是 .NET 平台的基本框架,具有强大的 API,给系统奠定了技术基础 系统采用 C#.NET 技术,结合 C/S 结构模
20、式,能够方便实现用户与系统的动态交互,以及方便信息的维护等 3、运行上可行性:本系统作为一个小型的聊天系统,所耗费的资源非常的小 综上所述通过可行性分析认为新系统的开发方案切实可行,可进行开发 1.5 系统运行环境 系统开发环境: Microsoft Visual Studio 2005 系统开发语言: C# 运行平台: Windows7 数据库: SQL Server 2005 基于 .NET 平台的聊天程序设计 第 2 章 相关技术概述 2.1 .NET Framewok 框架结构 概述 2.1.1 .NET Framework 框架 结构简介 .NET Framework 是一个集成在
21、Windows 中的组件,它支持生成和运行下一代应用程序与 XML Web Services .NET Framework 旨在实现下列目标: 提供一个一致的面向对象的编程环境,而无论对象代码是在本地存储和执行,还是在本地执行但在 Internet 上分布,或者是在远程执行的 提供一个将软件部署和版本控制冲突最 小化的代码执行环境 提供一个可提高代码(包括由未知的或不完全受信任的第三方创建的代码)执行安全性的代码执行环境 提供一个可消除脚本环境或解释环境的性能问题的代码执行环境 使开发人员的经验在面对类型大不相同的应用程序(如基于 Windows 的应用程序和基于 Web 的应用程序)时保持一
22、致 按照工业标准生成所有通信,以确保基于 .NET Framework 的代码可与任何其他代码集成 .NET Framework 的目的就是要 建立 Web Services 以及因特网应用程序的工作变的简单,它就相当于 微软 Web Services 引擎 许多程序设计师和使用者,非常渴望有一个完善而且透明清楚的基础架构,来建立 Web Services(因特网服务) .NET Framework 就是为了这个需求 而提供的基础架构 .NETFramework 提供了应用程序模型及关键技术,让开发人员容易以原有的技术来产生、布署,并可以继续发展具有高安全、高稳定,并具高延展的 Web Ser
23、vices 对于 .NET Framework 而言,所有的组件都可以成为 Web Services, Web Services 只不过是另一种型态 的组件罢了 微软将 COM( Component Object Model,组件对象模型) 的优点整合进来,它可以不用像 COM 那么严谨的来栓锁两个对象, .NET Framework 以松散的方式来栓锁 Web Services 这种型态的组件 这样的结果让开发人员非常容易的发展出强而有力的 Web 服务组件,提高了整体的安全及可靠性,并且大大的增加系统的延展性 2.1.2 .NET Framework 三部分内容介绍 .NET Framew
24、ork 包括了三大部分:第一个部分是 Common Language Runtime( CLR,公共语言运行时),第二部分是共享对象类别库(提供所有 .NET 程序语言所需要的基本对象),第三个部分是重新以组件的方式写成的 ASP.NET其中公共语言运行时( CLR)和 .NET Framework 类库是 .NET Framework 的两个主要组件 .NET Framework 的类库,是一个综合性的面向对象的可重用类型集合,可以使用它开发多种应用程序,这些应用程序包括传统的命令行或图形用户界面 (GUI) 应用程序,也包括基于 ASP.NET 所提供的最新创新的应用程序(如 Web 窗体
25、 和 XML Web Services) Common Language Runtime Common Language Runtime( CLR,公共语言运行时)架构在操作系统的服务上,它是 .NET Framework 的基础它负责应用程序实际的执行,满足所有的应用程序的需求;例如内存管理、处理安全问题、整合不同的程序语言等等 Runtime 供了许多帮助程序写作的简化,以及应用程序的部署并同时加强程序稳定可靠的一些服务 Common Language Runtime 结构图,如图 2-1 所示: 图 2-1 Common Language Runtime 结构图 想要执行由某种特定程序语
26、言所开发出来的程序,计算机内部必需装置这种特定程序语言的执行时期( Runtime)组件才可以 .为什么 Runtime 组件如此重要?这是因为 Runtime组件内部有该种程序语言所需要的一些核心功能,例如提供该种语言所需要的基本函式及对象等等;所以当程序在执行时会动态的连结到 Runtime 组件,取得所需要的功能 .但是不同的程序语言所需要的 Runtime 不一样,所以会造成程序设计师在开发时的困难 .所以为了要解决上述 的问题, .NET Framework 在发展时,设计了让所有 .NET 的程序语言共同使用的 Runtime 组件,这个组件的名称就叫做 Common Langua
27、ge Runtime( CLR) CLR 是一个高效率的执行引擎,程序代码的执行是由 Runtime 所管理, Runtime 负责的工作有产生对象、方法( methods)的呼叫等等, Runtime 也可以提供程 序代码一些额外的服务 我 们把要透过 CLR 的控制才能执行的程序代码称 ManagedCode. 共享类库 .NET 提供了一个让 .NET 所有程序 语言使用的共享对象类别库,这个对象类别库提供了几组统一、对象导向、结构化以及可扩充的对象类别库,协助程序设计师快速的开发软件 .共享对象类别库中提供了许多对象,包括集合、 IO、数据型态等等,也提供一些对象类别可以存取操作系统服
28、务,例如绘图、讯息、网络、执行绪与数据存取等等 .程序设计师可以直接建立 .NET 共享对象类别库所提供的对象,也可以呼叫共享对象类别库的功能,或者藉由继承某个对象的功能来扩充自己建立的对象 . 共享类库对象类别如图 2-2 所示: 基于 .NET 平台的聊天程序设计 图 2-2 共享类库包含的对象类别 ASP.NET ASP.NET 是共享对象类别库中的一员, ASP.NET 提供了一个 Web 应用程序模型 这 个 模型提供了一些窗体、控件及基础架构,让程序设计师简单的建立 Web 应用程序 ASP.NET 提供了一些对应 HTML 元素(例如按钮、清单盒等)的 HTML 控件( HTML Control)以及功能更强的 Web 控件( Web Controls);这些控件在客户端执行,然后在客户端的浏览器以 HTML 元素的方式显示 .这种 HTML 控件在客户端以对象导向的方式被程控,让程序设计师享受到对象导向程序写作的优点,简化