基于NET的在线聊天系统毕业论文.doc_第1页
基于NET的在线聊天系统毕业论文.doc_第2页
基于NET的在线聊天系统毕业论文.doc_第3页
基于NET的在线聊天系统毕业论文.doc_第4页
基于NET的在线聊天系统毕业论文.doc_第5页
已阅读5页,还剩31页未读 继续免费阅读

下载本文档

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

文档简介

潍坊科技学院本科毕业设计(论文)题 目 基于.NET的在线聊天系统 院(系) 中印计算机软件学院 专业 计算机科学与技术 学 号 200801450006 学生姓名 纪 连 文 指导教师 祝 凌 云 起讫日期 2011.12.15-2012.4.30 设计地点 潍坊科技学院 I摘要摘 要随着网络技术的不断发展,网络聊天技术正成为目前产业界和科研机构密切关注的焦点。基于网络的聊天技术已成了近年来新兴的聊天交流方式。网络聊天是在20世纪90年代发展起来的,它是在原有的面对面等通过动态声音为信息载体的基础上,增加了非接触式的通过静态文字为载体的交流方式。其使用的C/S结构系统可以在任何一台的计算机上使用,系统的部署和维护只是在服务器上进行,这样的模式既能减少管理的成本,更重要的是它能很方便的实现用户与系统的交互,更快地响应用户信息交互请求,加之微软C#编程语言在窗体应用上的优势以及平台的独立性好、简便的窗体生成为C/S的实现提供了很好的技术基础。本系统前台选用了C#等作为主要的编程工具和语言,后台选用SQL Server2008作为数据库服务器。利用ADO.NET编程技术实现前后台的数据交互。本系统实现了以下功能:即时聊天,添加好友,文件上传,聊天记录查询等。关键词: C# C/S结构 数据库 主程序 AbstractAbstractWith the development of net work 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 communicationIts 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: C # C/S structure DateBase MainProcess目录目 录摘 要I目 录II第1章 绪论111 选题背景及意义112 网络聊天简介113 系统设计思想114 可行性分析215 系统运行环境2第2章 相关技术概述321 客户端/服务器( Client/Server)结构概述322 SOCKET编程技术32.6 SQL Server 2008概述42.7 ADONET技术4第3章 需求分析531 系统需求分析532 系统功能需求533 数据处理需求634 系统性能需求6第4章 系统分析与设计741 系统功能模块设计74.2 系统模块详细设计74.2.1 客户端功能模块设计74.2.2 服务器端功能模块设计104.3 系统整体流程图10第5章 数据库设计135.1 概述135.2 数据库概念结构设计135.3 数据库逻辑结构设计145.3.1 用户信息实体属性图145.3.2 用户好友关系信息实体属性图145.4 数据表设计155.5 创建数据的存储过程15第6章 系统详细设计与实现176.1 系统通用类设计176.1.1 数据库表结构类设计176.1.2 服务器端模块数据库表操作类设计186.1.3 对数据库操作的封装186.2 界面及功能设计186.2.1 服务器主界面196.2.2 客户端界面196.3 系统实现过程中遇到的问题与解决276.3.1 Socket套接字异常问题276.3.2 多线程问题27第7章 结论与展望287.1 结论287.2 不足之处及未来展望28参考文献29致 谢30II第1章 绪论第1章 绪论11 选题背景及意义Internet是目前世界上最大的计算机互联网络,它遍布全球,将世界各地各种规模的网络连接成一个整体。作为Internet上一种先进的,易于被人们所接受的信息检索手段,World Wide Web(简称WWW)发展十分迅速,成为目前世界上最大的信息资源宝库。如今,人们不仅可以在网上查询自己需要的资源,而且可以通过网络进行实时的沟通。从实时性和有效性上都超过了用信件和电子邮件,并且在费用上要低于电话。因而各种聊天服务备受用户青睐,在这方面的开发与应用也较多,聊天服务也成为互联网提供的重要服务之一,因此,建立一个好的在线交流聊天系统十分重要。互联网的大多数网站都建有聊天室,并且有专业聊天网站提供聊天服务。它们中大部分都是绝对的C/S模式,对远程服务器有非常大的依赖性,没有彻底实现点对点的交流。在网络越来越发达的今天,人们对网络的依赖越来越多,越来越离不开网络,由此而产生的聊天工具越来越多,类似QQ、网络聊天时一类的聊天系统的发展日新月异。12 网络聊天简介网络聊天,英文简称NC(Network chat ),指的是按照用户的要求播放视频。NC有很广泛的含义,包含了娱乐、教育、商业等领域的多种应用,如游戏聊天( Chat In Game)、在线语音聊天(Online voice chat)、离线文件传输(Offline file transfer)和远程教学( Long Distance Learning)等。网络聊天是在20世纪90年代发展起来的,它是在原有的面对面等通过动态声音为信息载体的基础上,增加了非接触式的通过静态文字为载体的交流方式,其限制性比较低,避免了沟通上的一线制约因素;聊天系统就是提供了这些服务的具有动态交互功能的管理信息系统,它实现了一个网络上的在线聊天;用户可以在聊天信息系统并根据自己的喜好和性格进行自己的交流方式和寻找朋友。这样,使用户足不出户就可随时随地地与人交流,摆脱了传统交流方式在时间和空间的局限性,以及传统交流个人自身的因素的局限性,极大丰富了人们的网络生活。13 系统设计思想聊天系统利用Net平台的Winform技术和数据库技术,提供以文字聊天为中心的网络文本传输服务,系统采用C#作为编程语言技术,结合C/S结构模式,能动态实现与用户的交互,满足用户添加好友和修改用户信息等需求,以及后台管理员对系统信息管理的需求。14 可行性分析计算机网络作为一种先进的信息传输媒体,有着信息传送速度快、信息覆盖面广、成本低的特点。随着信息技术的发展,利用C#技术结合数据库技术来实现一个聊天系统,提供以文字聊天为中心的网络文本传输服务,能更贴切的满足用户根据自己的意愿进行无打扰的聊天的需求,也必将受到用户的青睐。但是,开发任何一个基于计算机的系统,都会受到时间和资源上的限制。因此,在开发系统前必须进行可行性分析,以减少项目的开发风险,避免人力、物力和财力的浪费。可行性研究的目的,就是用最小的代价在尽可能短的时间内确定问题能否解决。对在聊天系统的可行性分析如下:1、经济可行性分析:成本较低,系统建设不需要很大的投入,系统更新时也只需更新服务器端程序,方便维护。2、技术可行性分析:系统采用NET开发平台,NET Framework是NET平台的基本框架,具有强大的API,给系统奠定了技术基础。系统采用C#NET技术,结合C/S结构模式,能够方便实现用户与系统的动态交互,以及方便信息的维护等。3、运行上可行性:本系统作为一个小型的聊天系统,所耗费的资源非常的小。综上所述通过可行性分析认为新系统的开发方案切实可行,可进行开发。15 系统运行环境系统开发环境:Microsoft Visual Studio 2008系统开发语言: C#运行平台:Windows7数据库:SQL Server 200831第2章 相关技术概述第2章 相关技术概述21 客户端/服务器( Client/Server)结构概述C/S(Client/Server)结构,即大家熟知的客户机和服务器结构。它是软件系统体系结构,通过它可以充分利用两端硬件环境的优势,将任务合理分配到Client端和Server端来实现,降低了系统的通讯开销。目前大多数应用软件系统都是Client/Server形式的两层结构,由于现在的软件应用系统正在向分布式的Web应用发展,Web和Client/Server应用都可以进行同样的业务处理,应用不同的模块共享逻辑组件;因此,内部的和外部的用户都可以访问新的和现有的应用系统,通过现有应用系统中的逻辑可以扩展出新的应用系统。这也就是目前应用系统的发展方向。传统的CS体系结构虽然采用的是开放模式,但这只是系统开发一级的开放性,在特定的应用中无论是Client端还是Server端都还需要特定的软件支持。由于没能提供用户真正期望的开放环境,C/S结构的软件需要针对不同的操作系统系统开发不同版本的软件,加之产品的更新换代十分快,已经很难适应百台电脑以上局域网用户同时使用。而且代价高,效率低。如图2.1和图2.2所示:Client客户端Server服务器数据库图2.1 C/S结构图图2.2 客户机服务器通信结构示图22 SOCKET编程技术MicrosoftNet Framework为应用程序访问Internet提供了分层的、可扩展的以及受管辖的网络服务,其名字空间SystemNet和SystemNetSockets包含丰富的类可以开发多种网络应用程序。其实,Socket可以象流Stream一样被视为一个数据通道,这个通道架设在应用程序端(客户端)和远程服务器端之间,而后,数据的读取(接收)和写入(发送)均针对这个通道来进行。2.6 SQL Server 2008概述SQL Server 是一个关系数据库管理系统。SQL Server 2008 的特性有:1 Internet 集成; 2可伸缩性和可用性;3 企业级数据库功能;4 易于安装、部署和使用;2.7 ADONET技术ADONET是在NET Framework平台中负责数据存储的对象。ADONET建立在如XML的业界的基础之上,就像ADO,它提供了一个数据访问接口,以便和OLE DB兼容的数据源进行通信,如SQL Server或Oracle应用程序可以使用ADONET连接这些数据源,并检索,处理和更新数据。使用ADONET最重要的理由是可以获取一个真正断开连接的数据体系结构和XML的紧密集成和一个通用的数据表示法,可以将各种不同数据源中的数据组合起来,并优化了和数据库交互的功能。第3章 需求分析第3章 需求分析31 系统需求分析为了开发出真正满足用户需求的软件产品,首先必须知道用户的需求。对软件需求的深入理解是软件开发工作获得成功的前提条件,不论我们把设计和编码工作做得如何出色,不能真正满足用户需求的系统只会令用户失望,给开发者带来烦恼。网络聊天的出现,最初是源于人们对远程通信、远程帮助的需求发展到现在的远程群聊、远程教育、远程控制以及语音聊天和视屏聊天。在传统的聊天中,要求人们面多面的聊天近距离的的沟通。虽然可以通过电话进行远程没接触式的聊天,但是这种聊天费用高昂,对于对身体的健康也有一定的影响而且电话聊天对于偏远地区效果并不好,在当今如此快节奏的生活中,在高速发展的信息经济中,用户没能在恰当的时间通过交流接受到自己有用的信息是常有发生的事情。这对于用户的日常生活会产生极大影响,用户希望可以根据自己的时间和安排进行方便的信息交换,不必遵守传统的聊天时间机制,可以随时随地的联系、表述自己的想法与朋友进行感情的交流。并且随着网络技术的不断发展,人们越来越习惯于利用网络来实现所需的服务,网络信息经济时代的来临,因此,建立一个基于网络的聊天系统,以其不受时间与空间的限制,向用户提供以文本信息传输为中心的服务,动态地实现与用户间的信息交互,必能满足广大用户的需求,该系统主要分为两部分:客户端和服务器端两部分。系统所要实现的功能主要是方便用户进行网络聊天。32 系统功能需求初步将在聊天系统分为两个模块:客户端模块及服务器模块。1、客户端功能包括:用户登录:建立与服务器的连接并登陆,能显示登陆错误信息,以及配置登陆的服务器IP地址和端口号。用户注册:连接本地数据库,注册用户号码,并保存该用户,同时将信息返回给客户端。聊天功能:与好友进行聊天。信息显示:显示好友的在线列表和好友的离线列表。聊天纪录:能够记录当前界面的聊天记录。登录提示:显示欢迎界面。信息提示:能够播放提示音,提示用户有人向其发送聊天邀请。头像闪烁提示:在收到消息而聊天面板未打开时,对你发出聊天信息的好友头像闪烁。发送窗口抖动:发送提示声音并对好友的聊天窗体进行颤动激活。添加好友:能够通过连接本地数据库进行添加好友。删除好友:能够通过连接本地数据库进行删除好友。2、服务器端功能包括:登陆信息:检查登陆信息是否正确,并向客户端返回登陆信息,如信息正确。就将在线用户好友列表和离线好友列表发给该用户,并将该用户的状态发给各在线用户并更新其在线好友列表和离线好友列表。消息发送:服务器打开监听,当接收到客户端发送的消息建立线程通过Sockets套接字转发消息。操作数据库:服务器端对数据库里的数据表进行映射生成在线好友列表和离线列表。用户下线:将此用户下线消息发给各客户端,并改写用户在服务器端的状态,更新客户端的在线好友列表和离线列表。33 数据处理需求对用户信息的处理需求:包括查询好友信息、添加好友关系信息、删除好友关系信息。对聊天信息的处理需求:包括发送字符串、接收并显示字符串、保存当前界面的信息。34 系统性能需求一个系统的性能包括信息系统的效率、处理方式、可靠性、安全性、适应性等内容。效率是信息系统的处理能力、处理速度、吞吐量、响应时间等与系统处理时间有关的性能要素。处理方式涉及的范围比较宽,包括信息系统的结构和分布模式、交互方式、业务处理方式等。可靠性是保证系统正常工作及抗故障、抗干扰的能力,它包括:保证系统正常工作的能力;对系统故障的预防、检测以及自动纠错的能力;出现故障时,保证系统不发生崩溃,并使系统重新恢复、重新启动的能力等。安全性是保证合法用户能够正确使用信息系统,并防止非法用户访问信息系统的能力。适应性是信息系统对外部环境和需求变化的适应能力。根据系统的性能需求,在聊天系统的开发主要要实现的目标有以下几个方面:(1)界面设计友好、美观。(2)数据存储安全、可靠。(3)信息分类清晰、准确。(4)数据查询的灵活性。(5)实现对聊天信息的展示。 (6)提供好友关系信息的添加、删除功能,方便用户操作。(7)具有易维护性和易操作性。第4章 系统分析与设计第4章 系统分析与设计41 系统功能模块设计按系统的功能需求分析,将系统功能模块分为两大模块:客户端功能模块和服务器端功能模块。客户端功能模块包括:用户登录模块、用户注册模块、软件版权模块、显示好友模块、在线聊天模块、添加好友模块、删除好友模块;服务器功能模块包括:服务器登录模块。根据系统功能模块设计,系统的整体功能结构图如图4.1所示:基于.Net平台的聊天系统客户端功能用户注册用户登录服务器端功能滚动和通知区域图标开启监听服务删除好友在线聊天添加好友显示好友图4.1 系统整体功能结构图4.2 系统模块详细设计4.2.1 客户端功能模块设计(1)用户注册。设计流程如下:输入要注册的用户名和密码,系统会检查用户名是否已经存在,如果不存在,就允许注册新用户并发回数据库自动生成的用户ID。模块流程图如图4.2所示:用户名是否存在?生成注册用户注册用户不存在存在返回生成酷熊号返回生成用户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 删除好友模块流程图4.2.2 服务器端功能模块设计服务器端功能模块就是服务器监听模块:服务器监听模块。设计流程如下:首先判断服务器的端口是否更该,配置好端口号开启服务器开始监听,监听到用户登录消息,客户端进行操作数据库验证,正确就建立Socket连接,并读取其在线好友列表和离线好友列表发送给客户端,当监听客户端进行各种操作,服务器端调用自身的监听处理方法进行处理并将结果或信息通过Socket发送给客户端。服务器监听模块流程图如图4.7所示:是否合法端口号?输入端口号是否开启客户端监听是否接收到消息是开启客户端处理发送消息到客户端否图4.7 服务器监听模块流程图4.3 系统整体流程图在聊天系统的流程是用户在客户端登录,若用户名不存在,则需先注册用户信息,在注册完用户信息后,用户输入自己的帐号及密码登录系统,在用户登录成功后服务器端监听客户端发来的登陆消息,进行登录处理,验证数据库表中的数据进行对比以及该用户当前的状态,如果用户的账号和密码比对无错,再比对在线用户Hash表中是否已经登录,如果没有登录则建立Socket连接并更新在线用户Hash表,建立线程处理与用户的Socket连接操作,同时发送登录用户的在线好友列表和离线好友列表,用户成功登录后,进入好友显示模块,在在线好友界面中点击好友头像进入聊天界面,用户发送信息给在线好友,服务器监听到客户端通过Socket发过来的对好友进行聊天的消息,并截取Socket传输的数据流中的发送者要传输给接收者的消息,通过与接收者建立Socket连接,将数据写入其Socket传输数据中,实现数据的转发,同时用户对好友进行发颤抖框操作都是服务器接受其操作消息标识参数,在发给好友操作标识参数,然后其客户端就会调用其自身定义的该标识参数下的方法,聊天完毕,用户发送离线消息,服务器接受到其消息,关闭与其的Socket连接,更新在线用户Hash表以及在线用户的在线好友列表。客户机/服务器模式在操作过程中采取的是主动请示方式,首先服务器方要先启动,并根据请示提供相应服务:(过程如下)1、服务器(1)、打开一通信端口并告知本地主机,它愿意在某一个公认地址上接收客户请求。(2)、等待客户请求到达该端口。(3)、接收到重复服务请求,处理该请求并发送应答信号。(4)、返回第二步,等待另一客户请求。(5)、关闭服务器。2、客户方:(1)、打开一通信通道,并连接到服务器所在主机的特定端口。(2)、向服务器发送服务请求报文,等待并接收应答;继续提出请求(3)、请求结束后关闭通信通道并终止。聊天系统的系统流程图如图4.8所示:图4.8系统整体流程图连接服务器发出消息请求入口监听端口入口封装并发送消息到服务器在聊天去显示客户端消息还是服务器端消息选择用户发送离线消息服务器更新消息客户端消息入口客户端系统流图更新在线用户列表监听端口提取句柄报文目的地址转发目的地址监听端口配置服务器判断消息上线或离线请求聊天信息操作服务器端程序流程图图客户端客户端A客户端B服务器端封装发送拆封、提取目的信息并转发拆封、提取操作消息和目的信息转发地址服务器端客户端交互流程图图图4.9 系统分布流程图第6章 系统详细设计与实现第5章 数据库设计5.1 概述数据库设计是指根据用户需求研制数据库结构并应用数据库的过程。一般,数据库的设计过程大致可分数据库设计为5个步骤:1、需求分析:调查和分析用户的业务活动和数据的使用情况,弄清所用数据的种类、范围、数量以及它们在业务活动中交流的情况,确定用户对数据库系统的使用要求和各种约束条件等,形成用户需求规约。2、概念设计:对用户要求描述的现实世界(可能是一个工厂、一个商场或者一个学校等),通过对其中住处的分类、聚集和概括,建立抽象的概念数据模型。这个概念模型应反映现实世界各部门的信息结构、信息流动情况、信息间的互相制约关系以及各部门对信息储存、查询和加工的要求等。所建立的模型应避开数据库在计算机上的具体实现细节,用一种抽象的形式表示出来。3、逻辑设计:主要工作是将现实世界的概念数据模型设计成数据库的一种逻辑模式,即适应于某种特定数据库管理系统所支持的逻辑数据模式。与此同时,可能还需为各种数据处理应用领域产生相应的逻辑子模式。这一步设计的结果就是所谓“逻辑数据库”。4、物理设计:根据特定数据库管理系统所提供的多种存储结构和存取方法等依赖于具体计算机结构的各项物理设计措施,对具体的应用任务选定最合适的物理存储结构(包括文件类型、索引结构和数据的存放次序与位逻辑等)、存取方法和存取路径等。这一步设计的结果就是所谓“物理数据库”。 5、验证设计:在上述设计的基础上,收集数据并具体建立一个数据库,运行一些典型的应用任务来验证数据库设计的正确性和合理性。一般,一个大型数据库的设计过程往往需要经过多次循环反复。当设计的某步发现问题时,可能就需要返回到前面去进行修 改。因此,在做上述数据库设计时就应考虑到今后修改设计的可能性和方便性。5.2 数据库概念结构设计数据库概念结构设计是在需求分析的基础上,设计出能够满足用户需求的各种实体,以及它们之间的关系,为后面的逻辑结构设计打下基础。这阶段可用的工具很多。用的最多的是E-R图(Entity-Relation,实体-关系图),另外还有许多计算机辅助工具(Computer Aided Software Engineering, CASE)可以帮助进行设计。本系统采用了E-R图的方法进行数据库概念结构设计。E-R图是描述数据实体关系的一种直观描述工具。这种图中有:1、实体:用方框表示,方框内为实体的名称。2、实体的各种属性:用椭圆表示,椭圆内为属性名称。使用线段将其和响应的实体连接起来。3、实体之间的联系:用菱形表示,菱形内为联系的名称。实体和实体之间的联系较多,比较常见的联系有l:1,l:N和M:N这三种。5.3 数据库逻辑结构设计概念结构是独立于实际数据模型的信息结构,必须将其转化为逻辑结构后才能进行数据库应用的设计。也就是要将概念上的结构转化为数据库系统所支持的实际数据模型。第一种转化是将实体转化为关系表。这种转化较简单,需要将实体的属性定义为表的属性即可。第二种转化是联系的转化。即将各个实体之间的联系转化为表格之间的关系,如外部键的定义。5.3.1 用户信息实体属性图在聊天系统中要有聊天的实体,用户是聊天系统中密不可分的主体部分,因此要创建一用户信息实体,用来保存用户登录账号、密码等详细的信息。用户信息实体属性图,如图5.1所示:用户信息实体用户头像图片用户昵称用户密码用户的使用权限用户在线时间用户ID图5.1 用户信息实体E-R图5.3.2 用户好友关系信息实体属性图用户好友关系是在聊天系统实现的桥梁和标志,是在聊天系统的重要组成部分,这里创建了一个用户好友关系信息实体,用来存储用户好友关系的详细信息。用户好友关系信息E-R图,如图5.2所示:用户好友关系信息实体用户A的ID关系名用户B的ID图5.2 用户关系信息E-R图5.4 数据表设计系统采用SQL Server 2005的数据库管理 ,建立数据库名为CoolBearServerDB,数据库中存放的表有UserDT (用户登录信息表)、FriendsRelationDT (用户好友关系详细信息表)。数据库各表详细结构如下:表5.1 UserDT (用户登录信息表)列名类型主键非空外键注释CoolBear_UserIDint是是酷熊号CoolBear_UserNamevarchar(10)是酷熊昵称CoolBear_UserHeadImagvarchar(25)是用户头像图片CoolBear_UserPasswordvarchar(25)是酷熊密码CoolBear_UserOnlineTimeint是用户在线时间CoolBear_UserLogo lint是用户权限表5.2 CoolBear_FriendsRelationID (用户好友关系信息表)列名类型主键非空 外键注释CoolBear_FriendsRelationIDint 是是 好友关系名CoolBear_FriendsRelationFriendID1CoolBear_FriendsRelationFriendID2intint 是是 用户1酷熊号用户2酷熊号5.5 创建数据的存储过程下面存储过程为数据库提供检索验证登录信息,为服务器端向客户端提供更新好友列表提供数据: public static bool ValidateUser(string UserMessage) string sqlstring = select * from UserDT WHERE CoolBear_UserID=UserID AND CoolBear_UserPassword=UserPassword; int coolBearID = Int32Parse(UserMessage0); string coolBearPw = UserMessage1; SqlConnection conn = new SqlConnection(connString); connOpen(); SqlCommand scd = new SqlCommand(sqlstring, conn); scdParametersAddWithValue(UserID, coolBearID); scdParametersAddWithValue(UserPassword, coolBearPw); SqlDataAdapter sda = new SqlDataAdapter(scd); DataTable dt = new DataTable(); sdaFill(dt); try scdExecuteNonQuery(); if (dtRowsCount0) return true; else return false; catch (SystemException ex) return false; finally sdaDispose(); scdDispose(); connClose(); connDispose(); 第6章 系统详细设计与实现本系统的详细设计与实现主要分为通用类的设计和界面设计以及事件处理逻辑实现的设计。本系统中要经常对数据库进行添加、删除、修改等操作为了避免重复写相同的代码,将对数据库的基本操作封装到一个类中。这样每次需要对数据库进行操作的时候,只要直接调用这个封装好的类就可以实现对数据库的增加、删除、修改等操作。系统的实现主要是进行客户端和服务器端的通信以及信息的交换:主要的结构是,系统有两个文件夹分别是:CoolBearServer和CoolBearClient;CoolBearServer包括各个子文件夹,以下是对各文件夹的描述如下:1、Bin:Bin目录用来保存项目生成后程序集,在NET中,编译是分模块进行的,编译整个完成后会合并为一个DLL或EXE保存到bin目录下。2、Obj:obj目录是用来保存每个模块的编译结果。3、Properties:此目录用来存放程序集的属性和配置。CoolBearClient包括多个WinForm程序类文件以及各个子文件夹,以下是对各文件夹的描述如下(除去和CoolBearServer中一模一样的文件夹):1、Images:用于存放系统使用到得图片。2、Resource:此文件夹放置系统使用的嵌入在资源。3、Music:此文件夹放置系统用到的声音文件。6.1 系统通用类设计系统的功能模块从操作处理上主要是服务器端模块。服务器端模块包括用户登录、用户注册、添加好友、删除好友四部分。主要通过对表UserDT和表FriendsRelationDT的操作来实现,封装在类SqlControl里面。系统通用类设计如下:6.1.1 数据库表结构类设计1、UserDTClass类对UserDTClass类中,实现UserDT表基础字段属性的定义:用户IDpublic int CoolBear_UserID;用户名public string CoolBear_UserName;用户头像public string CoolBear_UserHeadImage;用户密码public string CoolBear_UserPassword;用户在线时间public int CoolBear_UserOnlineTime;用户权限public int CoolBear_UserLogo。2、FriendsRelationDTClass类对FriendsRelationDTClass类中,实现FriendsRelationDT表基础字段属性的定义:好友关系名public int CoolBear_FriendsRelationID;好友名字1public int CoolBear_FriendsRelationFriendID1;好友名字2public int CoolBear_FriendsRelationFriendID26.1.2 服务器端模块数据库表操作类设计SqlControl类对表UserDT和表FriendsRelationDT的操作封装在SqlControl类里面,实现的操作有:验证登录信息ValidateUser();查找所有好友FindFriend ();注册用户InsertUser()添加好友InsertFriendRelation();删除好友DeleteFriendRelation();生成好友列表List FindUserInfo();6.1.3 对数据库操作的封装在数据库类SqlCommand和DataRead中封装了对数据库的基本操作操作,常用的方法有:ExecuteNonQuery()它的返回值类型为int型,多用于执行增加,删除,修改数据、返回受影响的行数;ExecuteReader()它的返回类型为SqlDataReader。此方法用于用户进行的查询操作。使用SqlDataReader对象的Read();方法进行逐行读取;ExecuteScalar()它的返回值类型多位int类型。它返回的多为执行select查询。得到的返回结果为一个值的情况,比如使用count函数求表中记录个数或者使用sum函数求和等。6.2 界面及功能设计界面设计时使用了Microsoft Visual Studio 2008里面的集成界面组件,集成组件设计具有的优点有:简单强大:Windows窗体可用于设计窗体和可视控件,以创建丰富的基于Windows的应用程序;新的数据提供程序管理:数据提供程序管理提供易于连接OLEDB和ODBC数据源的数据控件,包括Microsoft SQL Server、Microsoft Access、Jet、DB2以及Oracle等;安全:Windows窗体充分利用公共语言运行库的安全特性。这就意味着,一切都可以通过Windows窗体来实现,包括在浏览器中运行的不可信控件和用户硬盘上安装的完全可信的应用程序;灵活的控件。Windows窗体提供了一套丰富的控件,并且开发人员可以定义自己有特色的新的控件;方便的数据显示和操作:应用程序开发中最常见的情形之一是在窗体上显示数据。Windows窗体对数据库处理提供全面支持。可以访问数据中的数据,并在窗体上显示和操作数据;向导:向用户提供创建窗体、数据处理、打包和部署等的分布指导,这样为提高工作效率,降低开发和维护强度上提供了有力的支持。在聊天系统的功能设计上,添加好友和删除好友都在显示好友界面的菜单里,并在事件处理的设计中添加了大量的提示框提示操作。为用户的不当操作提供了很好的向导功能在后面的页面设计时,在组件的与数据库进行处理时添加了逻辑判定操作语句以便实现安全的访问数据库。6.2.1 服务器主界面服务器主界面,在运行CoolBearServerexe后就会运行服务器的主界面。这个类似于DOS界面中里,要求我们输入服务器的端口号然后按ENTER键开启服务器,在程序中规定了端口号介于1024-65535之间,如果你输入的端口号不在其间,将会报错,提示用户端口格式不符合规范,如果不输入任何值就直接按ENTER键,服务器将会自动设置为默认值8888,这样就开启了服务器。服务器主界面如下图所示:图6-1 服务主界面6.2.2 客户端界面1、用户在进入聊天主界面前,首先要求用户登录,在登陆界面中,用户不但要输入正确匹配的用户名和密码,还要在折叠远程服务器界面设置远程服务器的IP地址

温馨提示

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

评论

0/150

提交评论