通信工程毕业设计(论文)基于socket的即时通讯软

上传人:沈*** 文档编号:80573698 上传时间:2022-04-25 格式:DOC 页数:68 大小:524.14KB
收藏 版权申诉 举报 下载
通信工程毕业设计(论文)基于socket的即时通讯软_第1页
第1页 / 共68页
通信工程毕业设计(论文)基于socket的即时通讯软_第2页
第2页 / 共68页
通信工程毕业设计(论文)基于socket的即时通讯软_第3页
第3页 / 共68页
资源描述:

《通信工程毕业设计(论文)基于socket的即时通讯软》由会员分享,可在线阅读,更多相关《通信工程毕业设计(论文)基于socket的即时通讯软(68页珍藏版)》请在装配图网上搜索。

1、长沙学院 CHANGSHA UNIVERSITY毕业设计(论文)资料设计(论文)题目: 基于socket的即时通讯软件 系部: 电子与通信工程 专 业: 通信工程 学 生 姓 名: 闫成超 班 级:05通信2 学号 2005043201 指导教师姓名: 张明 职称 高级工程师 最终评定成绩 长沙学院教务处 二七年十月制目 录第一部分 毕业论文一、毕业论文第二部分 外文资料翻译一、外文资料原文二、外文资料翻译第三部分 过程管理资料一、 毕业设计(论文)课题任务书二、 本科毕业设计(论文)开题报告三、 本科毕业设计(论文)中期报告四、 毕业设计(论文)指导教师评阅表五、 毕业设计(论文)评阅教师评

2、阅表六、 毕业设计(论文)答辩评审表2009届本科生毕业设计(论文)资料第一部分 毕业论文(2009届)本科生毕业论文基于socket的即时通讯软件系部: 电子与通信工程系 专 业: 通信工程 学 生 姓 名: 闫成超 班 级:05通信2 学号 2005043201 指导教师姓名: 张明 职称 高级工程师 最终评定成绩 2009 年 6 月 长沙学院本科生毕业论文基于socket的即时通讯软件系 (部): 电子与通信工程 专 业: 通信工程 学 号: 2005043201 学生姓名: 闫成超 指导教师: 张明 高级工程师 2009 年 6 月 长沙学院毕业设计(论文) 摘 要近些年来,随着计算

3、机技术的飞快发展,尤其是计算机网络方面的发展,人们的生活得到了彻彻底底的改变,人们能以非常低廉的价格,甚至不用花钱,就可以用上更方便、更实用的网络通信软件。现在,网络上的在线服务系统多种多样,它们已经深深的影响并改变了人们的联系和交流方式,使得人们可以在千里之遥进行即时性的通讯。过去的种种陈旧的通讯方式,已经不能满足现代生活的需要。即时通讯软件作为一种方便人与人之间联系的实用工具应运而生,为我们的学习和工作,带来了极大的方便,很大程度的提高了学习和工作效率。由于即时通讯软件的外观友好、使用非常方便,而且使用者之间的通讯是即时互动的特点,受到大多数人的喜欢,这一类通讯软件的应用市场特别广阔。现如

4、今,很多的企业、机关、学校都纷纷建立起自己的局域网。于是我就想到做一个在局域网里的多功能通讯软件,在局域网里,我们可以通过它,实现在局域网里联络,消息的发布等。在学校建立的校园网里,这软件可以方便同学之间、教师之间、师生之间即时性的联络,这样,不用上Internet,可以节省资源。在学校这个大环境里,这个软件可以方便同学之间联系,促进同学之间的友谊,学生可以通过它来与不同寝室的同学,与教师讨论问题,并能最大限度地利用现有的网络资源,极大地提高工作效率。这个软件包括服务器程序和客户端程序,服务器包括聊天信息即时转发,发送通知,数据库备份还原及数据库的初始化等功能。客户端具有登陆,注册,修改个人信

5、息,聊天等功能。关键词:VB,Winsock,Access,即时通讯软件ABSTRACT In recent years, along with the fast development of computer technology, especially the development of computer network, the life of people get a complete change, people can use more convenient and more practical network communication software with very l

6、ow price, even no money. Now, there are kinds of on-line service system,which have changed peoples contact and communication, and make people can real-time communication over thousands of miles away. The past, old communication cant meet the need of modern life. Instant messenger software as a conve

7、nient contact between the practical tools brought great convenience to our study and work, greatly improving the efficiency of work and study. Because of its friendly outward appearance, the formidable function, the use convenience, the relation prompt and so on the characteristic wins modern people

8、s favors, its application market is extremely broad.Nowadays, a lot of enterprises, institutions and schools have set up their own LAN. So I thought of making a different communications software. We can achieve through it, the contact in LAN, news release, etc. In the school campus, the establishmen

9、t of the software can be conveniently between teachers and students, between the contact between teacher and students. We need not get on the Internet. It can save resources. In the school, this software c can make students convenient links. Students can discuss problems with other students and teac

10、hers through it. This software can maximize existing network resources, greatly improving work efficiency. The software includes server program and client program. Server includes real-time chat message transmitting, database backup notification, and database of initialization functions. The client

11、has login, registration, modify, chat, personal information functions.Keywords: VB,Winsock,Access, Instant Messenger目 录 摘 要IABSTRACTII第1章 绪论11.1课题的来源及意义11.2课题的目的11.3课题的内容1第2章 开发工具介绍22.1 VB简介22.2 Access简介4第3章 网络通讯程序的设计原理53.1 TCP/IP协议53.2 客户机/服务器模型6第4章 需求分析及开发方法84.1 需求分析84.2 系统功能模块84.3 系统功能需求图84.4 开发方

12、法介绍9第5章 总体设计115.1 设计思想115.2 关键通信技术Winsock11第6章 详细设计136.1 数据库设计136.1.1 系统数据流程图136.1.2 数据库逻辑结构设计136.2 各主要窗体及核心代码介绍146.2.1 密码模块146.2.2 数据初始化模块156.2.3 数据备份和还原模块176.2.4 查看服务器信息206.2.5 保存记录以及查看记录206.2.6 更改管理员密码236.2.7 发布通知246.2.8 客户界面256.2.9 底层通讯设计30结 论33参考文献35附 录36致 谢379长沙学院毕业设计(论文)第1章 绪论1.1课题的来源及意义在网络无所

13、不在的今天,在Internet上,有QQ、MSN等网上寻呼软件,极大程度上方便了处于世界各地的友人之间的相互联系,也使世界好像一下子缩小了,不管你在哪里,只要你上了网,打开这些软件,就可以给你的朋友发信息,不管对方是否也同时在线,只要知道他的号码。现在,企业、机关、学校都纷纷建立起自己的局域网。在局域网里,虽然可以通过文件共享的方式进行通讯,但单单使用这种方式,是非常不方便的。首先,在局域网里的网上邻居里,只能看到机器名,不清楚对方是谁,也不知道对方机器里有什么资源可以共享,而且当局域网内的机器很多时,这种方式更加麻烦。于是,就想到做一个适用于局域网(校园网)的聊天工具,在局域网里,我们可以通

14、过它实现局域网内方便的联络、进行消息的发布。在学校的校园网里,这软件可以起到方便同学之间、教师之间、师生之间相互联络的作用。这样,不用上Internet,可以节省资源,在学校这个大环境里,就可以同学之间联系,联络感情,促进同学之间的友谊,学生可以通过它来与不同寝室的同学,教师讨论问题,并能最大限度地利用现有的网络资源,极大地提高工作效率1。1.2课题的目的现在也有很多在局域网上不使用服务器的通讯软件,比如飞鸽传书,这种软件小巧且方便,也能解决一部分问题。但是有服务器的通讯软件,可以保存用户的个人信息或介绍,供人查看。而且,不使用服务器的通讯软件,是以机器为通讯单元的,而有服务器的通讯软件是以人

15、为通讯单元,可以明确联络的对象,准确的找到对方。总之,使用有服务器的通讯软件在局域网上通讯,会给我们带来更多的方便。1.3课题的内容这个基于socket技术的即时通讯软件是基于Visual Basic平台和Access数据库设计的。软件的通讯协议是TCP/IP协议,并且采用socket套接字和客户端/服务器端(Client/Server)网络模型。采用原型法设计可以使设计过程由浅入深,方便以后在功能上拓展软件。本软件在需求分析后,进行初步设计,再经过反复调试,实现了聊天的基本功能。第2章 开发工具介绍2.1 VB简介Visual Basic是一个功能强大的应用程序开发工具,在世界范围内得到了广

16、泛的应用。它之所以受到人们的青睐的主要原因有:Windows是当今主流操作系统,而Visual Basic是开发Windows应用程序最简单易学的语言之一;Visual Basic引入了面向对象和事件驱动的程序设计思想,大大缩短了应用软件的开发周期;Microsoft(微软)公司十分重视Visual Basic的功能扩充,不断地把最新技术运用到Visual Basic中,使之可以完成几乎所有Windows应用程序的开发任务;已有越来越多的优秀软件支持用Visual Basic进行二次开发2。用传统程序设计语言设计程序时,都是通过编写程序代码来设计用户界面,在设计过程中看不到界面的实际显示效果,

17、必须编译后运行程序才能观察。如果对界面的效果不满意,还要回到程序中修改。有时候,这种编程-编译-修改的操作需要反复多次,大大影响了软件开发效率。Visual Basic提供了可视化设计工具,把Windows界面设计的复杂性“封装”起来,开发人员不必为界面设计而编写大量程序代码。只需要按设计要求的屏幕布局,用系统提供的工具,在屏幕上画出各种“部件”,即图形对象,并设置这些图形对象的属性。Visual Basic自动产生界面设计代码,程序设计人员只需要编写实现程序功能的那部分代码,从而可以大大提高程序设计的效率,这就为开发通讯软件提供了很大的便利。4.0版以后的Visual Basic支持面向对象

18、的程序设计,但它与一般的面向对象的程序设计语言(C+)不完全相同。在一般的面向对象程序设计语言中,对象由程序代码和数据组成,是抽象的概念;而Visual Basic则是应用面向对象的程序设计方法(OOP),把程序和数据封装起来作为一个对象,并为每个对象赋予应有的属性,使对象成为实在的东西。在设计对象时,不必编写建立和描述每个对象的程序代码,而是用工具画在界面上,Visual Basic自动生成对象的程序代码并封装起来,每个对象以图形方式显示在界面上,都是可视的3。Visual Basic是在BASIC语言的基础上发展起来的,具有高级程序设计语言的语句结构,接近于自然语言和人类的逻辑思维方式。V

19、isual Basic语句简单易懂,其编辑器支持彩色代码,可自动进行语法错误检查,同时具有功能强大且使用灵活的调试器和编译器。Visual Basic是解释型语言,在输入代码的同时,解释系统将高级语言分解翻译成计算机可以识别的机器指令,并判断每个语句的语法错误。在设计Visual Basic程序的过程中,随时可以运行程序,而在整个程序设计好之后,可以编译生成可执行文件(EXE),脱离Visual Basic环境,直接在Windows环境下运行,直接方便了通讯软件的独立运行。Visual Basic通过事件来执行对象的操作。一个对象可能会产生多个事件,每个事件都可以通过一段程序来响应。例如,命令

20、按钮是一个对象,当用户单击该按钮时,将产生一个“单击”(CLICK)事件,而在产生该事件时将执行一段程序,用来实现指定的操作。在用Visual Basic设计大型应用软件时,不必建立具有明显开始和结束的程序,而是编写若干个微小的子程序,即过程。这些过程分别面向不同的对象,由用户操作引发某个事件来驱动完成某种特定的功能,或者由事件驱动程序调用通用过程来执行指定的操作,这样可以方便编程人员,提高效率。Visual Basic具有强大的数据库管理功能,利用数据控件和数据库管理窗口,可以直接建立或处理Microsoft Access格式的数据库,并提供了强大的数据存储和检索功能。同时,Visual B

21、asic还能直接编辑和访问其他外部数据库,如DBase,FoxPro,Paradox等,这些数据库格式都可以用Visual Basic编辑和处理。Visual Basic提供开放式数据连接,即ODBC功能,可通过直接访问或建立连接的方式使用并操作后台大型网络数据库,如SQL Server,Oracle等。在应用程序中,可以使用结构化查询语言SQL数据标准,直接访问服务器上的数据库,并提供了简单的面向对象的库操作指令和多用户数据库访问的加锁机制和网络数据库的SQL的编程技术,为单机上运行的数据库提供了SQL网络接口,以便在分布式环境中快速而有效地实现客户/服务器(Client/Server)方案

22、4。利用动态数据交换(Dynamic Data Exchange)技术,可以把一种应用程序中的数据动态地链接到另一种应用程序中,使两种完全不同的应用程序建立起一条动态数据链路。当原始数据变化时,可以自动更新链接的数据。Visual Basic提供了动态数据交换的编程技术,可以在应用程序中与其他Windows应用程序建立动态数据交换,在不同的应用程序之间进行通信。对象的链接与嵌入(OLE)将每个应用程序都看作是一个对象(object),将不同的对象链接(link)起来,再嵌入(embed)某个应用程序中,从而可以得到具有声音、影像、图像、动画、文字等各种信息的集合式的文件。OLE技术是Micro

23、soft公司对象技术的战略,它把多个应用程序合为一体,将每个应用程序看作是一个对象进行链接和嵌入,是一种应用程序一体化的技术。利用OLE技术,可以方便地建立复合式文档(compound document),这种文档由来自多个不同应用程序的对象组成,文档中的每个对象都与原来的应用程序相联系,并可执行与原来应用程序完全相同的操作5。Visual Basic是一种高级程序设计语言,不具备低级语言的功能,对访问机器硬件的操作不太容易实现。但它可以通过动态链接库的技术将C/C+或汇编语言编写的程序加入到Visual Basic应用程序中,可以像调用内部函数一样调用其他语言编写的函数。此外,通过动态链接库

24、,还可以调用Windows应用程序接口(API)函数,实现SDK所具有的功能6。2.2 Access简介Access是Office办公套件中一个极为重要的组成部分。刚开始时微软公司是将Access单独作为一个产品进行销售的,后来微软发现如果将Access捆绑在Office中一起发售,将带来更加可观的利润,于是第一次将Access捆绑到Office97中,成为Office套件中的一个重要成员。现在它已经成为Office办公套件中不可缺少的部件了。自从1992年开始销售以来,Access 已经卖出了超过6000万份,现在它已经成为世界上最流行的桌面数据库管理系统。后来微软公司通过大量地改进,将Ac

25、cess的新版本功能变得更加强大。不管是处理公司的客户订单数据;管理自己的个人通讯录;还是大量科研数据的记录和处理,人们都可以利用它来解决大量数据的管理工作。除了成为 Web 上数据交换的标准技术外,扩展标记语言(XML)也正迅速成为商务软件应用程序间交换数据时的首选技术方案。Microsoft Access 2003 提供有功能强大而直观的 XML 数据共享功能,而无须考虑平台、数据格式、协议、架构或商务规则之间的差异。利用熟悉的 Access 用户界面,您可以方便地利用 Jet 或 SQL Server 结构和数据创建 XML 数据或架构文档。同时,还可使用来自窗体、报表和数据访问页中其他

26、应用程序的 XML 数据。例如,假设您的数据跨越各种不同的源分布:包括内部 SQL server、Excel 电子表格以及诸如 SAP 的其他数据提供程序。由于这些源将 XML 用作自己的数据交换格式,因此可以在 Access 中创建一系列聚合查询,以将该数据拉入视图中,然后利用这些视图设计窗体和报表。通过简化架构和样式表的创建和应用,Access 还提供了便于控制数据的方法。Access可通过一种标准一致的方式,便捷地描述丰富的结构化XML数据,同时也便于与其他应用程序间实现数据传输。例如,可以使用Access创建描述数据结构的架构,然后将该架构发送给自己的供应商,以便他们准确了解您所期望的

27、发票数据格式7。第3章 网络通讯程序的设计原理3.1 TCP/IP协议TCP/IP是国际互联网所采用进行网际互连的通信协议。IP互连协议(Internet Protocol),负责主机之间的传输数据。TCP传输控制协议(Transmission Control Protocol),负责在应用程序之间传递数据。实际所称的TCP/IP协议包括了在国际互联网上应用的一组协议,互联网协议组是此协议组的另一个名字。这个协议组包括几种工作在不同层次上的网络协议,UDP用户数据报协议(User Datagram Protocol),提供给用户进程的无连接协议,也负责在应用程序之间无连接传递数据,但不执行正确

28、性检查。ICMP互连网控制报文协议(Internet Control Message Protocol),处理主机间的差错和传送控制。ARP地址解析协议(Address Resolution Protocol),负责将网络层地址转换成链路层地址。RARP反向地址解析协议(Reverse Address Resolution Protocol),负责将链路层地址转换成网络层地址。TCP/IP协议的核心是传输层协议(TCP、UDP)、网络层协议(IP)和物理接口层,这三层通常在操作系统的内核中实现。TCP/IP网络环境下的应用程序设计是通过网络系统编程界面Socket实现的,Socket提供应用程

29、序与系统内核之间的网络编程接口。协议可以是可靠的可以是不可靠的。可靠的协议意味着当数据通过协议传递时,协议保证数据正确传输。可靠传输包括几个特征。首先,为了确保数据正确传送,协议在通信应用程序之间互相交换确认信息。也就是说,程序每次发送一个报文时,都期望对方发送一个相当于说:“我得到这个报文”的确认信息。如果发送程序没有收到这样一个确认信息,程序将自动重新发送此报文,直到得到应答信息为止。其次,为了确保传输的数据有效,可靠协议在每次传输时,都包含一个或更多的校验和(CRC)。接收计算机重新计算校验和,与收到的校验和进行比较。如果不匹配,就表明在传输过程中发生了错误。传输控制协议TCP是一个使用

30、校验和、确认信息以及其它可靠数据传输技术的可靠协议。相比之下,不可靠协议不能确保数据正确传输。协议试图传输数据,但不保证成功。而且,不可靠协议在传输失败后,并不通知发送方应用程序。可将不可靠数据传输比作没有返回地址的信件。如果发送地址是错误的,由于邮递系统不能将信退回给你,所以你就不知道信件有没有送到。即使发送地址是正确的,也不能保证邮递系统不丢失你的信件8。TCPIP协议组中存在的两个基本数据服务是:字节流服务和数据报服务。使用字节流的协议将信息看作一串字节流进行传输。协议不管要求发送或接收数据的长度和传送数目,只是将数据看作一个简单的字节串流。使用数据报的协议将信息视作一个独立单元进行传输

31、。协议单独发送每个数据报数据报之间不相互依赖。例如,假设你使用字节流协议发送5个数据段(每个有10字节)和一个包含50字节的数据段(总共100字节)。连接的接收方可以按每次20字节读数据(要读5次)。传输控制协议是字节流协议。字节流协议不关心每个数据段的长度。如果应用程序使用字节流协议发送数据,则协议能够保证连接的另一端按照发送的顺序接收数据。相比之下,传输到同一目的地的多个数据报可能不会按发送顺序到达。如果接收方应用程序要求数据顺序一致,应用程序必须在数据到达后,校对这些数据。用户数据报协议和互连网协议使用数据报传输数据。数据报类似于信件。如果你在同一天给同一个人邮寄两封信,你无法知道那个人

32、先收到那封信。同样,如果连续两天给两个人邮信,你也不能知道哪封信先收到。收到信的顺序和发送顺序可能相反。在TCP/IP术语中,端口(Port)类似于IP地址,IP地址与主机地址是相联系的,端口和协议相联系。IP数据报保存目的和源IP地址,同样传输协议也保存源和目的端口号。如果端口这个概念对你来说很陌生,请考虑计算机上的硬件端口。你可能编写过往硬件端口送数据的程序。例如为了打印,如果没有其它程序的话,必须向串或并端口发送数据。PC机给它的端口命名和编号。例如,PC机的并行打印端口称为LPTl和LPT2,串行端口称为COM1和COM2。在Internet上,网络只是简单地对协议端口编号。在PC机,

33、LPT1表示并行端口1。成千的PC机应用程序使用此方案。多年来,程序员编写PC程序时都假定LPT1表示并行打印端口1。同样,程序员将每个Internet协议端口与一个特定的应用程序和功能联系在一起。Internet包括像FTP、Telnet和Mail这样广泛使用的应用程序采用的应用协议,在Internet上,这些应用程序使用一种叫做“通用口分配”的端口。通用口分配是特定应用程序广泛使用的一个协议端口。像PC程序员使用打印端口LPT1用于打印,Internet程序员也对具体应用程序使用许多协议端口。例如,平凡文件传输协议(FTP)的通用口分配是端口号21的。Telnet的通用口分配是端口号238

34、。3.2 客户机/服务器模型客户机/服务器(C/S)模型是一种网络模型,它并不是定义了网络的层次结构,而是描述了一种网络程序运行的方式。客户机/服务器模型将网络应用程序分为客户和服务器两部分。客户方对服务器方发送信息请求,服务器方对其做出相应回答,提供服务。在TCP/IP网络应用中,多数网络应用程序是使用客户机/服务器模型设计的。服务程序通常在一个众所周知的地址监听对服务的请求,也就是说,服务进程一直处于休眠状态,直到一个客户程序提出了请求信息。此时,服务程序被唤醒并且为客户提供服务,对客户的请求做出适当的反应。虽然基于连接的服务是设计客户/服务器应用程序的标准,但有些服务也是可以通过数据报S

35、ocket提供的。通常,网络应用程序包含两个独立的应用程序:客户程序和服务器程序。但是,也可以设计同时完成这两种功能的程序,例如,一些服务器程序如果不能完成一个服务请求时,它将转而充当客户程序,向其它服务器程序请求信息。这方面的一个典型例子就是提供Internet从域名到IP地址映射服务的DNS服务器。为了充分理解TCP/IP协议族,必须理解几个重要术语。这些术语指出了两个TCP/IP传输协议:用户数据包协议(UDP)和传输控制协议(TCP)之间的区别。这些术语进一步描述了与网络连接、协议可靠性以及数据服务有关的协议特性。当建立服务器程序时,应该将服务器程序设计成等候客户的请求。你知道,TCP

36、传输层通过协议端口和应用程序(像服务器和客户)通信,也就是说,为了接收客户请求,服务器程序必须对传输层的一个特定协议端口进行侦听。当服务器配置socket接口时,它使用bind()函数让Socket执行体登记一个协议端口。也就是说,程序告诉Socket执行体使用哪一个协议端口进行数据传送。Socket执行体接着告诉传输层某个特定协议端口已被使用,并将其收到的所有数据传送给Socket API。使用无连接协议的程序和使用面向连接协议的服务器程序之间的主要相似之处是它们都必须对一个协议端口进行侦听。例如,无连接和连接服务器程序必须在协议端口侦听客户请求。同样,由于无连接客户程序没有和远地主机建立直

37、接连接,所以它也必须对协议端口进行侦听,以便接收以对它服务请求产生的数据报应答。Socket API中的bind()函数让程序将一个本地地址(包括主机地址和协议端口)和一个Socket联系起来。下面程序行显示了一个典型的函数调用:resultbind ( socket_handle, local_structure, socket_address, address_ length)无连接客户程序也对一个协议端口进行侦听。使用无连接协议的程序不和远地主机建立直接连接。无连接客户程序使用数据报发送网络服务请求,它不建立点到点连接。因此无连接客户程序必须在一个协议端口,对应答数据报进行侦听。与服务器

38、程序一样,无连接客户程序也使用bind()函数让Socket执行体登记协议端口。也就是说,类似服务器程序,无连接客户程序告诉Socket执行体使用哪个协议端口进行数据传输。Socket执行体处理传输层内UDP软件模块和客户程序之间的接口9。第4章 需求分析及开发方法4.1 需求分析一个即时通讯软件应提供基于TCP/IP网络的即时消息传送、消息广播、实时聊天等功能。列举如下:(1) 支持多账号。(2) 可以同时发送同一个消息给一个人,通过输入对方信息。(3) 可以同时发送一个消息给所有人。(4) 即使用户不在线,也能通过服务器发送离线消息。(5) 提供消息、聊天的历史记录,方便对信息的查看和管理

39、。(6) 提供查看在线的人的功能。(7) 用户上线通知。(8) 用户下线更新(9) 有权限的人可以发系统广播通知(10) 查看用户信息(11) 更改个人信息(12) 开机启动设置(13) 主窗口总是浮在最上端(14) 速度快,占用资源少4.2 系统功能模块根据上述的需求分析,并针对个人所掌握的知识和自己毕业设计时间的限制,要做到面面俱到是不可能的,并考虑到作为局域网(校园网)聊天工具,终端用户数量较少,我设计的通讯软件借鉴了QQ、聊天室等即时聊天工具,聊天信息采用服务器转发方式,只要当前在线的用户都可以接收到,当然,也实现了两人之间私聊的功能。包括服务器程序和客户端程序,服务器包括聊天信息即时

40、转发、系统日志记录、发送通知、以及数据库的备份、还原、初始化。客户端具有登陆,注册,修改个人信息,聊天等功能。4.3 系统功能需求图 这个即时通讯软件系统包括服务器端和客户端,服务器端有聊天记录、系统设置、发布通告、数据库备份还原初始化、置顶的功能,客户端要求有登陆、注册、聊天和修改查看个人信息的功能,系统功能的需求图如下:图4.1 系统功能需求图4.4 开发方法介绍目前比较成熟的信息系统开发方法有:生命周期法、原型法、面向对象法等。生命周期法:把一个信息系统从其提出、分析、设计和使用,直到停止使用的整个生存期视为一个生命周期。整个生命周期划分为五个主要工作阶段:可行性分析阶段、系统分析阶段、

41、系统设计阶段、系统实施阶段和系统运行、维护与评价阶段。通常采用结构化系统分析和系统设计方法,自上而下分析、设计、强调开发过程的整体性和全局性;开发过程在时间上基本按阶段进行,任务明确;结合用户需求进行开发;开发周期长,维护不方便。适用于开发需求较明确固定的信息系统。原型法:是系统开发者在初步了解用户需求的基础上,开发出能实现系统基本功能的一个原型,再根据用户对原型使用与评价的意见,提出修改方案,修改完善原型,如此反复多次,直到得到用户满意的最终系统为止。开发过程以用户为中心,开发周期短。适用于开发需求不够明确或不断变化的软件。面向对象法:以类,类的继承,聚集等概念描述客观事物以及联系。为管理信

42、息系统的开发提供了全新的思路,面向对象方法以对象为中心。其特征主要有模块性,继承性和类比性,动态连接性。其中原型法是近几年发展起来的一种开发方法,该方法从一个初始信息要求的集合出发,在发展中逐步完善信息系统。本即时通讯软件采用的是原型法。使用原型法开发大体有以下几个步骤:(1) 确定系统需求。其中包括系统的应用范围、系统开发的经费估算等。(2) 设计初始原型。包括确定需求和开发工作模型,例如屏幕格式、功能菜单、报表格式以及对关键数据和功能的说明等。(3) 对初始原型进行需求迭代,不断进行修正或改进,直至得到一个用户满意的原型,从而终止原型迭代过程。(4) 如果需要,可写出系统必要成分的严格、详

43、细的说明。(5) 原型效果考察。考察用户新加入的需求信息和组成成分的严格说明信息,看其对原型效果的影响,是否影响到原型的有效性,如果导致原型失败,应加以修正和改进。原型法的生命周期提供了一种完整的、灵活的、近于动态的需求定义技术。它综合了所有提出的必要需求,建立原型就近似于预先需求的规格说明。对应于原型的工作模型可以进行必要的剪裁和组织,以便更接近目标系统。它可以综合用户、领导和原型开发人员的各方需求10。图4.2 原型法工作流程图 长沙学院毕业设计(论文)第5章 总体设计5.1 设计思想服务器端和客户端需要分别设计,除了主聊天界面外,还加上了登录界面,以便管理。作为即时通讯软件系统,客户端信

44、息全部来自于服务器,服务器端能实时掌握所有客户登录、退出、对话情况,并能实时转发、广播给相应客户。由于服务器要和多个客户联系,所以在设计中采用了Winsock控件数组的形式,其中下标为 0 的元素作为监听控件,当有客户登录、退出或者相互间发送消息时,能正确接收并作相应处理,其余控件数组元素当有客户连接时自动装入。客户端只需一个 Winsock控件,应具有随时连接、断开服务器的功能,也应具有对接收到的信息做出正确分析、处理的能力。在整个系统设计过程中,对客户端和服务器端的消息到达这一事件的设计和编码是系统的关键。5.2 关键通信技术Winsock本系统的开发平台是VB 6.0 ,采用了面向网络连

45、接的Winsock控件。Winsock是不可见控件,控件文件名是MSWINSCK.OCX,全称为Microsoft Winsock Control,它能实现机器与机器间点对点的连接以及对话,使用时要将此控件调入工具箱。Winsock控件可以使用两种协议:TCP协议和 UDP协议。使用TCP协议来实现服务器 - N 客户模式。UDP可以实现点对点无服务器通讯。TCP协议即数据传输协议,允许创建和维护与远程计算机的连接,使彼此可以进行数据传输。利用 TCP协议通讯必须分别建立客户应用程序和服务器应用程序。在创建客户应用程序时,必须知道服务器名或其 IP地址(RemoteHost 属性)及服务器进行

46、侦听的端口(RemotePort属性) ,然后调用 Connect 方法。创建服务器应用程序时 ,应设置一个侦听端口(LocalPort 属性)并调用 listen 方法。当客户机需要连接时(connect),就会发生 ConnectionRequest 事件。为了完成连接,可以在 ConnectionRequest 事件中调用Accept 方法。建立连接后 ,任何一方计算机都可以发送、接收对方数据。如果要发送数据,需调用 SendData 方法。当接收到数据时,会发生 DataArrival 事件,调用 DataArrival 事件中的 GetData方法就可以获得对方传送的数据11。Win

47、sock控件属性:Protocol值为sckTCPProtocol时使用TCP/ IP协议,sckUDPProtocol使用UDP协议RemoteHost 准备连接远程机的 IP地址RemotePort 连接远程机的 IP端口号LocalPort 本地机 IP端口号Winsock控件方法:Connect 申请连接远程机Listen 设置监听Accept 建立实际连接Senddata 发送数据Getdata 接收数据(用文本框接收时应加上参数Vbstring)Close 关闭连接Winsock控件事件:Connectionrequest 一方请求连接时另一方产生Connect 一方接受连接时另一

48、方产生Close 一方关闭连接时另一方产生DataArrival 一方发送数据另一方产生Error 请求连接失败时产生第6章 详细设计6.1 数据库设计 本系统采用的Access数据库是Microsoft公司始于1994年发表的微机数据库管理系统。决定采用ACCESS数据库保存用户的基本信息。采用文件和数据库的方式存储所有用户登录/退出记录以及用户的聊天信息。作为一种功能强大的MIS系统开发工具,它具有界面友好,易学易用,开发简单,接口灵活等特点,是一个典型的新一代数据管理和信息系统开发工具。Access具有较独特的优势-提供了更强大的数据组织,用户管理,查询检索、数据排序及数据打印等功能。在

49、一个工作组级别的网络环境中,使用Access开发的多用户数据库管理系统具有传统的XBASE数据库系统所无法比拟的客户服(Client/Server)结构和相应的数据库安全机制。 6.1.1 系统数据流程图数据流图(Data Flow Diagram,简称DFD)是新系统逻辑模型的主要组成部分,它可以反映出系统的主要功能、系统与外部环境见的输入输出、系统内部的处理、数据传送、数据存储等的情况。它的绘制依据是现行系统流程图,数据流程图是管理信息系统的总体设计图12。图6.1本系统的数据流图6.1.2 数据库逻辑结构设计根据系统的需要,设计2个数据表来存放用户信息,数据库中这两个表的名称分别为BAC

50、K和DATA。列表的详细内容如下:表6.1注册信息表列名数据类型说明IDTEXT序号用户名TEXT聊天人员的用户名密码TEXT密码性别TEXT聊天人员性别年龄TEXT年龄个人说明TEXT个人说明表6.2登陆信息表列名数据类型说明IDTEXT序号用户名TEXT用户名密码TEXT密码上线时间TEXT上线时间IPTEXTIP远程端口TEXT远程端口计算机名称TEXT计算机名称6.2 各主要窗体及核心代码介绍6.2.1 密码模块为了提高软件操作安全性,进入系统前,需要进行身份验证,通过此窗口输入个人信息以验证身份。用户登陆到界面后如果要修改密码,可以选择在设置选项或是密码服务选项里选择修改密码。登陆界

51、面和登陆流程图如下:图6.2登陆窗口界面图图6.3 登陆流程图6.2.2 数据初始化模块数据库需要初始化的功能,实现清空数据库的功能,实现的方法就是用原始的数据库文件覆盖替换现有的数据库文件。关键程序代码所示:FileNames = Dir(App.Path & qk*.mdb, vbNormal + vbDirectory) If FileNames = Then MsgBox 数据初始化失败, vbInformation Exit SubEnd IfDim a As LongDim str_tem As StringDim str As StringDim rs As ADODB.Reco

52、rdsetDim intAnswer As IntegerintAnswer = MsgBox(真的要初始化数据吗?请确认!, vbOKCancel + vbQuestion, 确认框)If intAnswer = vbOK ThenstrSource = App.Path & qkQingKong.mdbstrDestination = App.Path & sever.mdbCopyFile strSource, strDestination, FalseMsgBox 数据初始化完毕,请按“确定”返回, vbInformationEnd If界面图如下:图6.4初始化界面图图6.5初始化提

53、示界面图图6.6初始化结束界面图6.2.3 数据备份和还原模块数据需要定期备份,并且具有还原的功能,以保证数据的稳定性,所以数据备份还原的模块是必须有的。实现方法是把现有的数据库文件放入备份的文件夹里,还原的时候再将其覆盖替换当前的数据库文件。数据备份关键程序如下所示:On Error GoTo finish txtServerName = Format(Now, yyyymmddhhmm) WritePrivateProfileString DataSet, SID, txtServerName, App.Path & dataset.ini I = MsgBox(您确定要备份本地数据库吗?

54、, vbExclamation + vbYesNo, 警告) If I vbYes Then 这里点击的是“no Exit Sub Else strSource = App.Path & sever.mdb strDestination = App.Path & batsever.mdb CopyFile strSource, strDestination, False MsgBox 本地数据库已被成功备份到当前程序所在文件夹的bat子文件夹中!, vbInformation + vbOKOnly, 系统提示 End If Exit Subfinish:MsgBox 本地数据库备份失败!, v

55、bOKOnly + vbInformation, 提示 图6.7本地数据库备份界面图数据库备份后被保存到程序锁在文件夹的BAT子文件夹中,如图所示:图6.8备份提示界面图数据还原关键程序代码:Dim strSource, strDestination As StringDim I As IntegerDim FileNames As StringDim ServerName As StringDim Nian As StringDim Yue As StringDim Ri As StringDim Shi As StringDim Fen As StringFileNames = Dir(A

56、pp.Path & bat*.mdb, vbNormal + vbDirectory) If FileNames = Then MsgBox 找不到备份文件,请重新备份!, vbInformation + vbOKOnly, 系统提示 Exit SubEnd IfDim a As LongDim str_tem As String str_tem = Space$(20) a = GetPrivateProfileString(DataSet, SID, , str_tem, 20, App.Path & DataSet.ini) If a = 0 Then MsgBox 数据库文件出错,请查

57、看DataSet.ini配置是否正确: End ServerName = Left$(str_tem, Len(Trim$(str_tem) - 1) Nian = Mid(ServerName, 1, 4) Yue = Mid(ServerName, 5, 2) Ri = Mid(ServerName, 7, 2) Shi = Mid(ServerName, 9, 2) Fen = Mid(ServerName, 11, 2) I = MsgBox(数据库恢复将会覆盖当前数据库,你恢复到 & Nian & 年 & Yue & 月 & Ri & 日 & Shi & 时 & Fen & 分 &

58、备份数据库吗?, vbExclamation + vbYesNo, 警告) If I vbYes Then Exit Sub Else strSource = App.Path & batsever_copy.mdb strDestination = App.Path & sever.mdb CopyFile strSource, strDestination, False MsgBox 本地数据库已被成功恢复!, vbInformation + vbOKOnly, 系统提示 End IfEnd Sub对话框如图6-9和6-10:图6.9本地数据库还原的界面图图6.10还原成功界面图6.2.4

59、 查看服务器信息作为服务器需要对服务器本身运行的信息有准确的掌握,而且还记录用户注册和登陆的信息。点击文件菜单的查看服务器信息按钮就可以显示以下的窗口,如图6.11:图6.11 服务器信息界面图关键代码如下:Text1.SelText = 本机IP地址是: & Form1.Winsock1(0).LocalIP & vbCrLfText1.SelText = 程序是 & formtime & 启动的 & vbCrLfText1.SelText = Form1.StatusBar1.Panels(3).Text & vbCrLfText1.SelText = 当前 & Form1.StatusB

60、ar1.Panels(1).Text & 人 & vbCrLfText1.SelText = 当前 & Form1.StatusBar1.Panels(2).Text & 人 & vbCrLfText1.SelText = 用户登陆最多时达 & CStr(maxconnext) & 人 & vbCrLf6.2.5 保存记录以及查看记录对于保存的聊天和日志信息,服务器必须能够很方便的显示出任意一天的信息,实现快速查看。其中“选择日期”是command1,“日志信息”是command2,“聊天信息”是command3。选择日期的界面在类模块已经定义了Dim Calendar As Class1关键代码如下:Private Sub Command1_Click()c1 = Not c1If c1 Then Calendar.cshowElse Calendar.chideEnd If

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

copyright@ 2023-2025  zhuangpeitu.com 装配图网版权所有   联系电话:18123376007

备案号:ICP2024067431-1 川公网安备51140202000466号


本站为文档C2C交易模式,即用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。装配图网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知装配图网,我们立即给予删除!