网络多人聊天系统的设计与实现—计算机毕业设计.doc_第1页
网络多人聊天系统的设计与实现—计算机毕业设计.doc_第2页
网络多人聊天系统的设计与实现—计算机毕业设计.doc_第3页
网络多人聊天系统的设计与实现—计算机毕业设计.doc_第4页
网络多人聊天系统的设计与实现—计算机毕业设计.doc_第5页
已阅读5页,还剩36页未读 继续免费阅读

下载本文档

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

文档简介

编号:_毕 业 论 文题 目: 网络多人聊天系统的设计与实现 院 (系): 专 业: 学生姓名: 学 号: 指导教师单位: 姓 名: 职 称: 桂林电子科技大学毕业论文摘 要近年来计算机技术的快速发展,特别是计算机网络的发展,越来越深刻的改变了人们生活的方方面面,使得人们能以更低廉的价格,开发出更方便、更实用的网络工具。各种在线服务系统,更是深刻的影响了人们的联系和交流方式,使得人们可以在远隔千里之遥随时通讯。过去的种种陈旧的联系方式,已经不能满足现代生活的需要。网上聊天系统作为一种方便人与人之间联系的实用系统便应运而生,为我们的工作和学习,带来极大的方便和提高工作效率。由于目前人们交流方式变得多种多样,其中聊天软件凭借其友好的外观、强大的功能、使用的便利、联系的及时等特点博得现代人的青睐,其应用的市场十分广阔。现在,企业、机关、学校纷纷建立起自己的局域网。在局域网,虽然可以通过文件共享的方式进行通讯,但单单使用这种方式,是非常不方便的。于是就想到做一个在局域网里的多功能聊天软件,在局域网里,我们可以通过它,实现在局域网里方便的联络,进行文件传输,消息的发布,自己共享内容的简介等。在学校建立的校园网里,这软件可以方便同学之间、教师之间、师生之间的相互联络,这样,不用上Internet,还可以节省资源,在学校这个大环境里,可以方便同学之间联系,联络感情,促进同学之间的友谊,学生可以通过它来与不同寝室的同学,或教师讨论问题。并能最大限度地利用现有的网络资源,极大地提高工作效率。为了适应校园网的建设,并实现校园网内的消息发布,学生交流,师生交流,网上交作业等功能。作为本人的毕业设计,本文介绍了个人开发的一款适用于校园的,一个局域网内的C/S结构的通讯软件,它将使同学们的交流更为方便,也可根据自身特点添加更多功能。我考虑到作为局域网(校园网)聊天工具,终端用户数量较少,借鉴了QQ、网络聊天室等即时聊天工具,聊天信息采用服务器转发方式,只要当前在线的用户都可以接收到,当然,也实现了两人之间的私聊功能。软件包括服务器程序和客户端程序,服务器包括聊天信息即时转发,自动关机的设置及记载,发送通知,数据库备份还原及数据库的初始化等功能。客户端具有登陆,注册,修改个人信息,聊天等功能。关键词 VB ; Access ; Winsock ; 聊天 绪论 第1页 共21页AbstractIn recent years the computer technology fast develop quickly, special the computer network development, the more and more profound change people have lived aspects. Enables the people by a more inexpensive price, develops a more convenient, the more practical network tool. Each kind of on-line service system was the profound influence peoples relation and the exchange way, caused the people to be allowed to be widely separated by the great distance the remote as necessary communication. Alls orts of past obsolete connect method, already could not satisfy the modern life. The pragmatic system that cyber buck system contacts as one kind of convenient person and person between just arises at the historic moment , is ours work and study , brings about immense going to the lavatory and raises working efficiency. Because the present people exchange the way to change many and varied, in which chats software to rely on its friendly outward appearance, the formidable function, the use convenience, the relation prompt and so on the characteristic wins modern peoples favour, its application market is extremely broad.Now, the enterprise, the institution, the school all established own local area network, in local area network, although was allowed to carry on the communication through the document sharing way, but solely used this way, was extremely not convenient. Thereupon thought makes multi-purpose to chat software on-line service system, was the profound influence peoples relation and the exchange way, caused the people to be allowed to be widely separated by the great distance the remote as necessary communication. Past all sorts of obsolete contact method, already could not satisfy the modern life the need. On-line chats the system to take between one kind of convenient consumer and the people relates the practical system then arises at the historic moment, for ours work and the study, will bring the enormous convenience and the enhancement working efficiency. Also because are in the local area network, in the local area network, we may through it, realize the contact which facilitates in the local area network, carries on the file transfer, the news issue, own share the content the synopsis and so on. Establishes in the campus net in the school, this software may get up between the convenient schoolmate, between the teacher, between teachers and students mutual contact, like this, does not use Internet, may save the resources, in school this big environment, may between the schoolmate relate, makes friendly contacts, promotes between schoolmates friendship, the student to be allowed to come through it with the different bedroom schoolmate, the teacher to discuss the issue. And can maximum limit use the existing network resources, enormously enhances the working efficiency. In order to adapt the campus net construction, realizes in the campus net to carryon the news to issue that, the student exchanges, the teachers and students exchange, function and so on on-line work.As myself graduation project, this article introduced individual development section is suitable for the campus, in local area network C/S structure communication software, it will cause the school mates exchange to be more convenient, also might act according to own characteristic to increase multi-purpose. I considered (campus net)chats the tool as the local area network, the terminal user quantity are less, this VB multi-purpose chatted software to profit from QQ, the Internet chat room and so on promptly chatted the tool, chatted the information to use the server to retransmit the way, so long as the current on-line users all were allowed to receive, certainly, also realized two person of between privately to chat the function. Including the server procedure and the customer end procedure, the server including chats the information to retransmit immediately, automatic Shut machine down establishment and record, transmission notice, database backup return to original state and database initialization. The customer end has lands, the registration, revises individual information, chats and so on the function.KeyWords: VB ; Access ; Winsock ; Chat目 录1 绪论1.1 课题的来源及意义在网络无所不在的今天,在Internet上,有Icq,Oicq,MSN等网上寻呼软件,极大程度上方便了处于世界各地的友人之间的相互联系,也使世界好像一下子缩小了,不管你在哪里,只要你上了网,打开这些软件,就可以给你的朋友发信息,不管对方是否也同时在线,只要知道他的号码。现在,企业、机关、学校都纷纷建立起自己的局域网。在局域网里,虽然可以通过文件共享的方式进行通讯,但单单使用这种方式,是非常不方便的。首先,在局域网里的网上邻居里,只能看到机器名,不清楚对方是谁,也不知道对方机器里有什么资源可以共享,而且当局域网内的机器很多时,这种方式更加麻烦。于是,就想到做一个适用于局域网(校园网)的聊天工具,在局域网里,我们可以通过它实现局域网内方便的联络、进行文件传输、消息的发布、自己共享内容的简介等。在学校建立起校园网里,这软件可以起到方便同学之间、教师之间、师生之间相互联络的作用。这样,不用上Internet,可以节省资源,在学校这个大环境里,就可以同学之间联系,联络感情,促进同学之间的友谊,学生可以通过它来与不同寝室的同学,教师讨论问题。并能最大限度地利用现有的网络资源,极大地提高工作效率。为了适应校园网的建设,并实现校园网内消息发布、学生交流、师生交流、网上交作业等功能1。1.2 课题的目的现在也有很多在局域网上不使用服务器的通讯软件,这种软件小巧且方便,也能解决一部分问题。但是有服务器的通讯软件,有着不可比拟的优势:可以发送离线消息,不管用户当时是否在线,下次上线时,就可以看到这条消息了;可以保存用户的个人信息或介绍,供人查看。而且,不使用服务器的通讯软件,是以机器为通讯单元的,而有服务器的通讯软件是以人为通讯单元。总之,有服务器的通讯软件在局域网上,还是有很大的用途的,为局域网上通讯,带来极大的方便。1.3 本人所做工作这个基于VB的多功能聊天软件由本人独立开发完成。本软件采用面向对象方法进行开发。采用面向对象的系统模型可以使整个软件系统的结构变得更加灵活,本系统的结构模型将采用面向对象的系统模型,采用VB 6.0这个可视化开发工具进行编码,最后完成主要的调试,仍有工作需要下一步完善。 桂林电子科技大学毕业论文 第2页 共21页2 开发工具介绍如果想编写优秀的聊天软件,首先需要选择好的编程工具。好的编程工具是成功的第一步。本文的聊天软件就是在VB的环境中和Access数据库相结合来实现软件开发的。2.1 VB简介Visual Basic是一个功能强大的应用程序开发工具,在世界范围内得到了广泛的应用。它之所以受到人们的青睐的主要原因有:Windows是当今主流操作系统,而Visual Basic是开发Windows应用程序最简单易学的语言之一;Visual Basic引入了面向对象和事件驱动的程序设计思想,大大缩短了应用软件的开发周期;Microsoft(微软)公司十分重视Visual Basic的功能扩充,不断地把最新技术运用到Visual Basic中,使之可以完成几乎所有Windows应用程序的开发任务;已有越来越多的优秀软件支持用Visual Basic进行二次开发2。2.1.1 可视化编程用传统程序设计语言设计程序时,都是通过编写程序代码来设计用户界面,在设计过程中看不到界面的实际显示效果,必须编译后运行程序才能观察。如果对界面的效果不满意,还要回到程序中修改。有时候,这种编程-编译-修改的操作需要反复多次,大大影响了软件开发效率。Visual Basic提供了可视化设计工具,把Windows界面设计的复杂性“封装”起来,开发人员不必为界面设计而编写大量程序代码。只需要按设计要求的屏幕布局,用系统提供的工具,在屏幕上画出各种“部件”,即图形对象,并设置这些图形对象的属性。Visual Basic自动产生界面设计代码,程序设计人员只需要编写实现程序功能的那部分代码,从而可以大大提高程序设计的效率,这就为开发聊天软件提供了便利。2.1.2 面向对象的程序设计开发聊天软件至少要使用面向对象程序语言。4.0版以后的Visual Basic支持面向对象的程序设计,但它与一般的面向对象的程序设计语言(C+)不完全相同。在一般的面向对象程序设计语言中,对象由程序代码和数据组成,是抽象的概念;而Visual Basic则是应用面向对象的程序设计方法(OOP),把程序和数据封装起来作为一个对象,并为每个对象赋予应有的属性,使对象成为实在的东西。在设计对象时,不必编写建立和描述每个对象的程序代码,而是用工具画在界面上,Visual Basic自动生成对象的程序代码并封装起来,每个对象以图形方式显示在界面上,都是可视的3。2.1.3 结构化程序设计语言Visual Basic是在BASIC语言的基础上发展起来的,具有高级程序设计语言的语句结构,接近于自然语言和人类的逻辑思维方式。Visual Basic语句简单易懂,其编辑器支持彩色代码,可自动进行语法错误检查,同时具有功能强大且使用灵活的调试器和编译器。Visual Basic是解释型语言,在输入代码的同时,解释系统将高级语言分解翻译成计算机可以识别的机器指令,并判断每个语句的语法错误。在设计Visual Basic程序的过程中,随时可以运行程序,而在整个程序设计好之后,可以编译生成可执行文件(EXE),脱离Visual Basic环境,直接在Windows环境下运行,直接方便了聊天软件的运行。2.1.4 事件驱动编程机制Visual Basic通过事件来执行对象的操作。一个对象可能会产生多个事件,每个事件都可以通过一段程序来响应。例如,命令按钮是一个对象,当用户单击该按钮时,将产生一个“单击”(CLICK)事件,而在产生该事件时将执行一段程序,用来实现指定的操作。在用Visual Basic设计大型应用软件时,不必建立具有明显开始和结束的程序,而是编写若干个微小的子程序,即过程。这些过程分别面向不同的对象,由用户操作引发某个事件来驱动完成某种特定的功能,或者由事件驱动程序调用通用过程来执行指定的操作,这样可以方便编程人员,提高效率。2.1.5 访问数据库技术本聊天软件使用了Access数据库。Visual Basic具有强大的数据库管理功能,利用数据控件和数据库管理窗口,可以直接建立或处理Microsoft Access格式的数据库,并提供了强大的数据存储和检索功能。同时,Visual Basic还能直接编辑和访问其他外部数据库,如DBase,FoxPro,Paradox等,这些数据库格式都可以用Visual Basic编辑和处理。Visual Basic提供开放式数据连接,即ODBC功能,可通过直接访问或建立连接的方式使用并操作后台大型网络数据库,如SQL Server,Oracle等。在应用程序中,可以使用结构化查询语言SQL数据标准,直接访问服务器上的数据库,并提供了简单的面向对象的库操作指令和多用户数据库访问的加锁机制和网络数据库的SQL的编程技术,为单机上运行的数据库提供了SQL网络接口,以便在分布式环境中快速而有效地实现客户/服务器(Client/Server)方案4。2.1.6 动态数据交换(DDE)利用动态数据交换(Dynamic Data Exchange)技术,可以把一种应用程序中的数据动态地链接到另一种应用程序中,使两种完全不同的应用程序建立起一条动态数据链路。当原始数据变化时,可以自动更新链接的数据。Visual Basic提供了动态数据交换的编程技术,可以在应用程序中与其他Windows应用程序建立动态数据交换,在不同的应用程序之间进行通信。2.1.7 对象的链接与嵌入(OLE)现在好多聊天软件使用OLE技术。对象的链接与嵌入(OLE)将每个应用程序都看作是一个对象(object),将不同的对象链接(link)起来,再嵌入(embed)某个应用程序中,从而可以得到具有声音、影像、图像、动画、文字等各种信息的集合式的文件。OLE技术是Microsoft公司对象技术的战略,它把多个应用程序合为一体,将每个应用程序看作是一个对象进行链接和嵌入,是一种应用程序一体化的技术。利用OLE技术,可以方便地建立复合式文档(compound document),这种文档由来自多个不同应用程序的对象组成,文档中的每个对象都与原来的应用程序相联系,并可执行与原来应用程序完全相同的操作5。2.1.8 动态链接库(DLL)Visual Basic是一种高级程序设计语言,不具备低级语言的功能,对访问机器硬件的操作不太容易实现。但它可以通过动态链接库技术将C/C+或汇编语言编写的程序加入到Visual Basic应用程序中,可以像调用内部函数一样调用其他语言编写的函数。此外,通过动态链接库,还可以调用Windows应用程序接口(API)函数,实现SDK所具有的功能6。2.2 Access简介Access是Office办公套件中一个极为重要的组成部分。刚开始时微软公司是将Access单独作为一个产品进行销售的,后来微软发现如果将Access捆绑在Office中一起发售,将带来更加可观的利润,于是第一次将Access捆绑到Office97中,成为Office套件中的一个重要成员。现在它已经成为Office办公套件中不可缺少的部件了。自从1992年开始销售以来,Access 已经卖出了超过6000万份,现在它已经成为世界上最流行的桌面数据库管理系统。后来微软公司通过大量地改进,将Access的新版本功能变得更加强大。不管是处理公司的客户订单数据;管理自己的个人通讯录;还是大量科研数据的记录和处理,人们都可以利用它来解决大量数据的管理工作。除了成为 Web 上数据交换的标准技术外,扩展标记语言(XML)也正迅速成为商务软件应用程序间交换数据时的首选技术方案。Microsoft Access 2003 提供有功能强大而直观的 XML 数据共享功能,而无须考虑平台、数据格式、协议、架构或商务规则之间的差异。利用熟悉的 Access 用户界面,您可以方便地利用 Jet 或 SQL Server 结构和数据创建 XML 数据或架构文档。同时,还可使用来自窗体、报表和数据访问页中其他应用程序的 XML 数据。例如,假设您的数据跨各种不同的源分布:包括内部 SQL server、Excel 电子表格以及诸如 SAP 的其他数据提供程序。由于这些源将 XML 用作自己的数据交换格式,因此可以在 Access 中创建一系列聚合查询,以将该数据拉入视图中,然后利用这些视图设计窗体和报表。通过简化架构和样式表的创建和应用,Access 还提供了便于控制数据的方法。Access可通过一种标准一致的方式,便捷地描述丰富的结构化XML数据,同时也便于与其他应用程序间实现数据传输。例如,可以使用Access创建描述数据结构的架构,然后将该架构发送给自己的供应商,以便他们准确了解您所期望的发票数据格式7。 桂林电子科技大学毕业论文 第14页 共21页3网络通讯程序的设计原理和过程对网络通讯程序的设计的原理和过程的透彻理解,是网络通讯程序的前提。本章将简要地介绍一下有关网络通讯程序设计的基本知识。3.1 TCP/IP协议TCP/IP是国际互联网所采用进行网际互连的通信协议。IP互连协议(Internet Protocol),负责主机之间的传输数据。TCP传输控制协议(Transmission Control Protocol),负责在应用程序之间传递数据。实际所称的TCP/IP协议包括了在国际互联网上应用的一组协议,互联网协议组是此协议组的另一个名字。这个协议组包括几种工作在不同层次上的网络协议,UDP用户数据报协议(User Datagram Protocol),提供给用户进程的无连接协议,也负责在应用程序之间无连接传递数据,但不执行正确性检查。ICMP互连网控制报文协议(Internet Control Message Protocol),处理主机间的差错和传送控制。ARP地址解析协议(Address Resolution Protocol),负责将网络层地址转换成链路层地址。RARP反向地址解析协议(Reverse Address Resolution Protocol),负责将链路层地址转换成网络层地址。TCP/IP协议的核心是传输层协议(TCP、UDP)、网络层协议(IP)和物理接口层,这三层通常在操作系统的内核中实现。TCP/IP网络环境下的应用程序设计是通过网络系统编程界面Socket实现的,Socket提供应用程序与系统内核之间的网络编程接口。协议可以是可靠的可以是不可靠的。可靠的协议意味着当数据通过协议传递时,协议保证数据正确传输。可靠传输包括几个特征。首先,为了确保数据正确传送,协议在通信应用程序之间互相交换确认信息。也就是说,程序每次发送个报文时,都期望对方发送一个相当于说:“我得到这个报文”的确认信息。如果发送程序没有收到这样一个确认信息,程序将自动重新发送此报文,直到得到应答信息为止。其次,为了确保传输的数据有效,可靠协议在每次传输时,都包含一个或更多的校验和(CRC)。接收计算机重新计算校验和,与收到的校验和进行比较。如果不匹配,就表明在传输过程中发生了错误。传输控制协议TCP是一个使用校验和、确认信息以及其它可靠数据传输技术的可靠协议。相比之下,不可靠协议不能确保数据正确传输。协议试图传输数据,但不保证成功。而且,不可靠协议在传输失败后,并不通知发送方应用程序。可将不可靠数据传输比作没有返回地址的信件。如果发送地址是锗误的,由于邮递系统不能将信退回给你,所以你就不知道信件有没有送到。即使发送地址是正确的,也不能保证邮递系统不丢失你的信件8。TCPIP协议组中存在的两个基本数据服务是:字节流服务和数据报服务。使用字节流的协议将信息看作一串字节流进行传输。协议不管要求发送或接收数据的长度和传送数目,只是将数据看作一个简单的字节串流。使用数据报的协议将信息视作一个独立单元进行传输。协议单独发送每个数据报数据报之间不相互依赖。例如,假设你使用字节流协议发送5个数据段(每个有10字节)和一个包含50字节的数据段(总共100字节)。连接的接收方可以按每次20字节读数据(要读5次)。传输控制协议是字节流协议。字节流协议不关心每个数据段的长度。如果应用程序使用字节流协议发送数据,则协议能够保证连接的另一端按照发送的顺序接收数据。相比之下,传输到同一目的地的多个数据报可能不会按发送顺序到达。如果接收方应用程序要求数据顺序一致,应用程序必须在数据到达后,校对这些数据。用户数据报协议和互连网协议使用数据报传输数据。数据报类似于信件。如果你在同一天给同一个人邮寄两封信,你无法知道那个人先收到那封信。同样,如果连续两天给两个人邮信,你也不能知道哪封信先收到。收到信的顺序和发送顺序可能相反。在TCP/IP术语中,端口(Port)类似于IP地址,IP地址与主机地址是相联系的,端口和协议相联系。IP数据报保存目的和源IP地址,同样传输协议也保存源和目的端口号。如果端口这个概念对你来说很陌生,请考虑计算机上的硬件端口。你可能编写过往硬件端口送数据的程序。例如为了打印,如果没有其它程序的话,必须向串或并端口发送数据。PC机给它的端口命名和编号。例如,PC机的并行打印端口称为LPTl和LPT2,串行端口称为COM1和COM2。在Internet上,网络只是简单地对协议端口编号。在PC机,LPT1表示并行端口1。成千个PC机应用程序使用此方案。多年来,程序员编写PC程序时都假定LPT1表示并行打印端口1。同样,程序员将每个Internet协议端口与一个特定的应用程序和功能联系在一起。Internet包括像FTP、Telnet和Mail这样广泛使用的应用程序采用的应用协议,在Internet上,这些应用程序使用一种叫做“通用口分配”的端口。通用口分配是特定应用程序广泛使用的一个协议端口。像PC程序员使用打印端口LPT1用于打印,Internet程序员也对具体应用程序使用许多协议端口。例如,平凡文件传输协议(FTP)的通用口分配是端口号21的。Telnet的通用口分配是端口号238。3.2 客户机/服务器模型客户机/服务器模型也是一种网络模型,但与前述的模型不同,它并不是定义了网络的层次结构,而是描述了一种网络程序运行的方式。客户机/服务器模型将网络应用程序分为客户和服务器两部分。客户方对服务器方发送信息请求,服务器方对其做出相应回答,提供服务。在TCP/IP网络应用中,多数网络应用程序是使用客户机/服务器模型设计的。服务程序通常在一个众所周知的地址监听对服务的请求,也就是说,服务进程一直处于休眠状态,直到一个客户程序提出了请求信息。此时,服务程序被唤醒并且为客户提供服务,对客户的请求做出适当的反应。虽然基于连接的服务是设计客户/服务器应用程序的标准,但有些服务也是可以通过数据报Socket提供的。通常,网络应用程序包含两个独立的应用程序:客户程序和服务器程序。但是,也可以设计同时完成这两种功能的程序,例如,一些服务器程序如果不能完成一个服务请求时,它将转而充当客户程序,向其它服务器程序请求信息。这方面的一个典型例子就是提供Internet从域名到IP地址映射服务的DNS服务器。为了充分理解TCP/IP协议族,必须理解几个重要术语。这些术语指出了两个TCP/IP传输协议:用户数据包协议(UDP)和传输控制协议(TCP)之间的区别。这些术语进一步描述了与网络连接、协议可靠性以及数据服务有关的协议特性。当建立服务器程序时,应该将服务器程序设计成等候客户的请求。你知道,TCP传输层通过协议端口和应用程序(像服务器和客户)通信,也就是说,为了按收客户请求,服务器程序必须对传输层的一个特定协议端口进行侦听。当服务器配置socket接口时,它使用bind()函数让Socket执行体登记一个协议端口。也就是说,程序告诉Socket执行体使用哪一个协议端口进行数据传送。Socket执行体接着告诉传输层某个特定协议端口已被使用,并将其收到的所有数据传送给Socket API。使用无连接协议的程序和使用面向连接协议的服务器程序之间的主要相似之处是它们都必须对一个协议端口进行侦听。例如,无连接和连接服务器程序必须在协议端口侦听客户请求。同样,由于无连接客户程序没有和远地主机建立直接连接,所以它也必须对协议端口进行侦听,以便接收以对它服务请求产生的数据报应答。Socket API中的bind()函数让程序将一个本地地址(包括主机地址和协议端口)和一个Socket联系起来。下面程序行显示了一个典型的函数调用:resultbind ( socket_handle, local_structure, socket_address, address_ length)无连接客户程序也对一个协议端口进行侦听。使用无连接协议的程序不和远地主机建立直接连接。无连接客户程序使用数据报发送网络服务请求,它不建立点到点连接。因此无连接客户程序必须在一个协议端口,对应答数据报进行侦听。与服务器程序一样,无连接客户程序也使用bind()函数让Socket执行体登记协议端口。也就是说,类似服务器程序,无连接客户程序告诉Socket执行体使用哪个协议端口进行数据传输。Socket执行体处理传输层内UDP软件模块和客户程序之间的接口9。图31 无连接协议的套接字调用的时序图图32 面向连接的套接字系统调用时序图3.3 本章小结本章详细介绍了聊天软件中重要的TCP/IP协议以及基于TCP/IP协议的客户/服务器程序的设计。为下一步多功能聊天软件的设计开发打好了通信方面的理论基础。4 需求分析及开发方法4.1 需求分析一个聊天软件应提供基于TCP/IP网络的即时消息传送、消息广播、实时聊天、文件传输等功能。列举如下:1. 支持多账号。2. 可以同时发送同一个消息给多人,通过输入这些人的号码列表或姓名列表。3. 可以同时发送一个消息给所有好友。4. 有权限的人可以向所有用户发送“消息广播”,便于消息的发布。5. 即使用户不在线,也能通过服务器发送离线消息。6. 提供消息、聊天的历史记录,方便对信息的查看和管理。7. 提供查看在线的人的功能。8. 提供按ID或姓名查找用户的功能,方便添加用户。9. 小窗口显示,不占用屏幕很大的空间。10. 支持热键调出后台的应用程序。11. 应用程序运行后,在任务栏右边生成一个图标,单击弹出在线状态菜单, 双击显示应用程序窗口,右击弹出主菜单。12. 支持隐身登陆,可以看到在线的朋友,朋友却不知道你上线了。13. 可以实时显示用户的状态和随时改变自己的状态。14. 提供了自动弹出消息。15. 好友上线通知。16. 好友下线更新17. 有权限的人可以发系统广播(或在服务器上发)18. 查看好友信息19. 按姓名或号码查找某人20. 在好友列表中删除某人21. 可以选择在某人的好友中删除自己22. 更改个人信息23. 系统设置24. 给在线好友传文件25. 消息管理器26. 在程序中设定最大,最小窗口尺寸(宽度,高度)27. 主窗口总是浮在最上端28. 速度快,占用资源少4.2 系统功能模块根据上述聊天软件的需求分析,并针对个人所掌握的知识和自己毕业设计时间的限制,要做到面面具到是不可能的。所以考虑到作为局域网(校园网)聊天工具,终端用户数量较少,本VB的多功能聊天软件借鉴了QQ、聊天室等及时聊天工具,聊天信息采用服务器转发方式,只要当前在线的用户都可以接收到,当然,也实现了两人之间的私聊功能。包括服务器程序和客户端程序,服务器包括聊天信息即时转发,自动关机的设置及记载,发送通知,数据库备份还原及数据库的初始化。客户端具有登陆,注册,修改个人信息,聊天等功能,功能比较简单,可实现聊天功能。4.3 系统功能需求图 VB聊天系统聊天记录转发发送通知关机设置及记载登陆注册聊天服务器端修改个人信息客户端帮助和关于备份还原及初始化图4-1 系统功能需求图4.4 开发方法介绍目前比较成熟的信息系统开发方法有:生命周期法、原型法、面向对象法等。生命周期法:把一个信息系统从其提出、分析、设计和使用,直到停止使用的整个生存期视为一个生命周期。整个生命周期划分为五个主要工作阶段:可行性分析阶段、系统分析阶段、系统设计阶段、系统实施阶段和系统运行、维护与评价阶段。通常采用结构化系统分析和系统设计方法,自上而下分析、设计、强调开发过程的整体性和全局性;开发过程在时间上基本按阶段进行,任务明确;结合用户需求进行开发;开发周期长,维护不方便。适用于开发需求较明确固定的信息系统。原型法:是系统开发者在初步了解用户需求的基础上,开发出能实现系统最基本功能的一个原型,再根据用户对原型使用与评价的意见,提出修改方案,修改完善原型,如此反复多次,直到得到用户满意的最终系统为止。开发过程以用户为中心,开发周期短。适用于开发需求不够明确或不断变化的软件。面向对象法:以类,类的继承,聚集等概念描述客观事物以及联系。为管理信息系统的开发提供了全新的思路,面向对象方法以对象为中心。其特征主要有模块性,继承性和类比性,动态连接性。其中原型法是近几年发展起来的一种开发方法,该方法从一个初始信息要求的集合出发,在发展中逐步完善信息系统。本VB多功能聊天软件采用的是原型法。使用原型法开发大体有以下几个步骤:1确定系统需求。其中包括系统的应用范围、系统开发的经费估算等。2设计初始原型。包括确定需求和开发工作模型,例如屏幕格式、功能菜单、报表格式以及对关键数据和功能的说明等。3对初始原型进行需求迭代,不断进行修正或改进,直至得到一个用户满意的原型,从而终止原型迭代过程。4如果需要,可写出系统必要成分的严格、详细的说明(如将需求转化为报表)。5原型效果考察。考察用户新加入的需求信息和组成成分的严格说明信息,看其对原型效果的影响,是否影响到原型的有效性,如果导致原型失败,应加以修正和改进。原型法的生命周期提供了一种完整的、灵活的、近于动态的需求定义技术。它综合了所有提出的必要需求,建立原型就近似于预先需求的规格说明。对应于原型的工作模型可以进行必要的剪裁和组织,以便更接近目标系统。它可以综合用户、领导和原型开发人员的各方需求10。Yes指导可行性分析方法选择?严格说明方法初步设计整理原型提供文档识别基本要求开发工作模型模型验证细化说明?原型完成?修正和改进原型效果好?严格说明YesNoYesYesNoNoNo图4-2原型法工作流程图 5 结论 第19页 共21页5 总体设计5.1 设计思想服务器端和客户端需要分别设计,其中客户端除了主聊天界面外,还加上了登录界面,以便以后扩展。作为聊天室系统,客户端信息全部来自于服务器,服务器端应能实时掌握所有客户登录、退出、对话情况,并能实时转发、广播给相应客户。由于服务器要和多个客户联系,所以在设计中采用了Winsock控件数组的形式,其中下标为 0 的元素作为监听控件,当有客户登录、退出或者相互间发送消息时,能正确接收并作相应处理,其余控件数组元素当有客户连接时自动装入。客户端只需一个 Winsock控件,应具有随时连接、断开服务器的功能,也应具有对接收到的信息做出正确分析、处理的能力。在整个系统设计过程中,对客户端和服务器端消息到达这一事件的设计和编码是系统的关键。5.2 关键通信技术Winsock本系统的开发环境是VB 6.0 ,采用了面向网络连接的Winsock控件。Winsock是不可见控件,控件文件名是MSWINSCK.OCX,全称为Microsoft Winsock Control,它能实现机器与机器间点对点的连接以及对话,使用时要将此控件调入工具箱。Winsock控件可以使用两种协议:TCP协议和 UDP协议。使用TCP协议来实现服务器 - N 客户模式。UDP可以实现点对点无服务器通讯,这里不作介绍。TCP协议即数据传输协议,允许创建和维护与远程计算机的连接,使彼此可以进行数据传输。利用 TCP协议通讯必须分别建立客户应用程序和服务器应用程序。在创建客户应用程序时,必须知道服务器名或其 IP地址(RemoteHost 属性)及服务器进行侦听的端口(Re2motePort属性) ,然后调用 Connect 方法。创建服务器应用程序时 ,应设置一个侦听端口(LocalPort 属性)并调用 listen 方法。当客户机需要连接时(connect),就会发生 ConnectionRe2quest 事件。为了完成连接,可以在 ConnectionRequest 事件中调用Accept 方法。建立连接后 ,任何一方计算机都可以发送、接收对方数据。如果要发送数据,需调用 SendData 方法。当接收到数据时,会发生 DataArrival 事件,调用 DataArrival 事件中的 GetData方法就可以获得对方传送的数据11。Winsock控件属性:Protocol 值为 sckTCPProtocol时使用 TCP/ IP协议 ,为sckUDPProtocol时使用UDP协议RemoteHost 准备连接远程机的 IP地址RemotePort 连接远程机的 IP端口号LocalPort 本地机 IP端口号Winsock控件方法:Connect 申请连接远程机Listen

温馨提示

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

评论

0/150

提交评论