基于socket的即时通讯软毕业设计(论文).doc

上传人:laozhun 文档编号:4022411 上传时间:2023-04-01 格式:DOC 页数:67 大小:534.50KB
返回 下载 相关 举报
基于socket的即时通讯软毕业设计(论文).doc_第1页
第1页 / 共67页
基于socket的即时通讯软毕业设计(论文).doc_第2页
第2页 / 共67页
基于socket的即时通讯软毕业设计(论文).doc_第3页
第3页 / 共67页
基于socket的即时通讯软毕业设计(论文).doc_第4页
第4页 / 共67页
基于socket的即时通讯软毕业设计(论文).doc_第5页
第5页 / 共67页
点击查看更多>>
资源描述

《基于socket的即时通讯软毕业设计(论文).doc》由会员分享,可在线阅读,更多相关《基于socket的即时通讯软毕业设计(论文).doc(67页珍藏版)》请在三一办公上搜索。

1、长沙学院 CHANGSHA UNIVERSITY毕业设计(论文)资料设计(论文)题目: 基于socket的即时通讯软件 系部: 电子与通信工程 专 业: 通信工程 学 生 姓 名:班 级:指导教师姓名:最终评定成绩目 录第一部分 毕业论文一、毕业论文第二部分 外文资料翻译一、外文资料原文二、外文资料翻译第三部分 过程管理资料一、 毕业设计(论文)课题任务书二、 本科毕业设计(论文)开题报告三、 本科毕业设计(论文)中期报告四、 毕业设计(论文)指导教师评阅表五、 毕业设计(论文)评阅教师评阅表六、 毕业设计(论文)答辩评审表2009届本科生毕业设计(论文)资料第一部分 毕业论文(2009届)本

2、科生毕业论文基于socket的即时通讯软件系部: 电子与通信工程系 专 业: 通信工程 学 生 姓 名: 闫成超 班 级:05通信2 学号 2005043201 指导教师姓名: 张明 职称 高级工程师 最终评定成绩 2009 年 6 月 长沙学院本科生毕业论文基于socket的即时通讯软件系 (部): 电子与通信工程 专 业: 通信工程 学 号: 2005043201 学生姓名: 闫成超 指导教师: 张明 高级工程师 2009 年 6 月摘 要近些年来,随着计算机技术的飞快发展,尤其是计算机网络方面的发展,人们的生活得到了彻彻底底的改变,人们能以非常低廉的价格,甚至不用花钱,就可以用上更方便、

3、更实用的网络通信软件。现在,网络上的在线服务系统多种多样,它们已经深深的影响并改变了人们的联系和交流方式,使得人们可以在千里之遥进行即时性的通讯。过去的种种陈旧的通讯方式,已经不能满足现代生活的需要。即时通讯软件作为一种方便人与人之间联系的实用工具应运而生,为我们的学习和工作,带来了极大的方便,很大程度的提高了学习和工作效率。由于即时通讯软件的外观友好、使用非常方便,而且使用者之间的通讯是即时互动的特点,受到大多数人的喜欢,这一类通讯软件的应用市场特别广阔。现如今,很多的企业、机关、学校都纷纷建立起自己的局域网。于是我就想到做一个在局域网里的多功能通讯软件,在局域网里,我们可以通过它,实现在局

4、域网里联络,消息的发布等。在学校建立的校园网里,这软件可以方便同学之间、教师之间、师生之间即时性的联络,这样,不用上Internet,可以节省资源。在学校这个大环境里,这个软件可以方便同学之间联系,促进同学之间的友谊,学生可以通过它来与不同寝室的同学,与教师讨论问题,并能最大限度地利用现有的网络资源,极大地提高工作效率。这个软件包括服务器程序和客户端程序,服务器包括聊天信息即时转发,发送通知,数据库备份还原及数据库的初始化等功能。客户端具有登陆,注册,修改个人信息,聊天等功能。关键词:VB,Winsock,Access,即时通讯软件ABSTRACT In recent years, along

5、 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 low price, even no money. Now, there are kinds of on-line service sy

6、stem,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 convenient contact between the practical tools brought great convenience

7、 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 peoples favors, its application market is extremely broad.Nowadays, a lot

8、 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 establishment of the software can be conveniently between teachers and students

9、, 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 teachers through it. This software can maximize existing network resour

10、ces, 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 has login, registration, modify, chat, personal information functio

11、ns.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 开发方法介绍9第5章 总体设计115.1 设计思想115.2 关键通信技术Winsock11第6章 详细设计136.1 数据库设计136.1

12、.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致 谢37第1章 绪论1.1课题的来源及意义在网络无所不在的今天,在Internet上,有QQ、MSN等网上寻呼软件,极大程度上方便了处于世界各地的友人之间的相互联系,也使世界好像一下子缩小了,不管你在哪里,只要你

13、上了网,打开这些软件,就可以给你的朋友发信息,不管对方是否也同时在线,只要知道他的号码。现在,企业、机关、学校都纷纷建立起自己的局域网。在局域网里,虽然可以通过文件共享的方式进行通讯,但单单使用这种方式,是非常不方便的。首先,在局域网里的网上邻居里,只能看到机器名,不清楚对方是谁,也不知道对方机器里有什么资源可以共享,而且当局域网内的机器很多时,这种方式更加麻烦。于是,就想到做一个适用于局域网(校园网)的聊天工具,在局域网里,我们可以通过它实现局域网内方便的联络、进行消息的发布。在学校的校园网里,这软件可以起到方便同学之间、教师之间、师生之间相互联络的作用。这样,不用上Internet,可以节

14、省资源,在学校这个大环境里,就可以同学之间联系,联络感情,促进同学之间的友谊,学生可以通过它来与不同寝室的同学,教师讨论问题,并能最大限度地利用现有的网络资源,极大地提高工作效率1。1.2课题的目的现在也有很多在局域网上不使用服务器的通讯软件,比如飞鸽传书,这种软件小巧且方便,也能解决一部分问题。但是有服务器的通讯软件,可以保存用户的个人信息或介绍,供人查看。而且,不使用服务器的通讯软件,是以机器为通讯单元的,而有服务器的通讯软件是以人为通讯单元,可以明确联络的对象,准确的找到对方。总之,使用有服务器的通讯软件在局域网上通讯,会给我们带来更多的方便。1.3课题的内容这个基于socket技术的即

15、时通讯软件是基于Visual Basic平台和Access数据库设计的。软件的通讯协议是TCP/IP协议,并且采用socket套接字和客户端/服务器端(Client/Server)网络模型。采用原型法设计可以使设计过程由浅入深,方便以后在功能上拓展软件。本软件在需求分析后,进行初步设计,再经过反复调试,实现了聊天的基本功能。第2章 开发工具介绍2.1 VB简介Visual Basic是一个功能强大的应用程序开发工具,在世界范围内得到了广泛的应用。它之所以受到人们的青睐的主要原因有:Windows是当今主流操作系统,而Visual Basic是开发Windows应用程序最简单易学的语言之一;Vi

16、sual Basic引入了面向对象和事件驱动的程序设计思想,大大缩短了应用软件的开发周期;Microsoft(微软)公司十分重视Visual Basic的功能扩充,不断地把最新技术运用到Visual Basic中,使之可以完成几乎所有Windows应用程序的开发任务;已有越来越多的优秀软件支持用Visual Basic进行二次开发2。用传统程序设计语言设计程序时,都是通过编写程序代码来设计用户界面,在设计过程中看不到界面的实际显示效果,必须编译后运行程序才能观察。如果对界面的效果不满意,还要回到程序中修改。有时候,这种编程-编译-修改的操作需要反复多次,大大影响了软件开发效率。Visual B

17、asic提供了可视化设计工具,把Windows界面设计的复杂性“封装”起来,开发人员不必为界面设计而编写大量程序代码。只需要按设计要求的屏幕布局,用系统提供的工具,在屏幕上画出各种“部件”,即图形对象,并设置这些图形对象的属性。Visual Basic自动产生界面设计代码,程序设计人员只需要编写实现程序功能的那部分代码,从而可以大大提高程序设计的效率,这就为开发通讯软件提供了很大的便利。4.0版以后的Visual Basic支持面向对象的程序设计,但它与一般的面向对象的程序设计语言(C+)不完全相同。在一般的面向对象程序设计语言中,对象由程序代码和数据组成,是抽象的概念;而Visual Bas

18、ic则是应用面向对象的程序设计方法(OOP),把程序和数据封装起来作为一个对象,并为每个对象赋予应有的属性,使对象成为实在的东西。在设计对象时,不必编写建立和描述每个对象的程序代码,而是用工具画在界面上,Visual Basic自动生成对象的程序代码并封装起来,每个对象以图形方式显示在界面上,都是可视的3。Visual Basic是在BASIC语言的基础上发展起来的,具有高级程序设计语言的语句结构,接近于自然语言和人类的逻辑思维方式。Visual Basic语句简单易懂,其编辑器支持彩色代码,可自动进行语法错误检查,同时具有功能强大且使用灵活的调试器和编译器。Visual Basic是解释型语

19、言,在输入代码的同时,解释系统将高级语言分解翻译成计算机可以识别的机器指令,并判断每个语句的语法错误。在设计Visual Basic程序的过程中,随时可以运行程序,而在整个程序设计好之后,可以编译生成可执行文件(EXE),脱离Visual Basic环境,直接在Windows环境下运行,直接方便了通讯软件的独立运行。Visual Basic通过事件来执行对象的操作。一个对象可能会产生多个事件,每个事件都可以通过一段程序来响应。例如,命令按钮是一个对象,当用户单击该按钮时,将产生一个“单击”(CLICK)事件,而在产生该事件时将执行一段程序,用来实现指定的操作。在用Visual Basic设计大

20、型应用软件时,不必建立具有明显开始和结束的程序,而是编写若干个微小的子程序,即过程。这些过程分别面向不同的对象,由用户操作引发某个事件来驱动完成某种特定的功能,或者由事件驱动程序调用通用过程来执行指定的操作,这样可以方便编程人员,提高效率。Visual Basic具有强大的数据库管理功能,利用数据控件和数据库管理窗口,可以直接建立或处理Microsoft Access格式的数据库,并提供了强大的数据存储和检索功能。同时,Visual Basic还能直接编辑和访问其他外部数据库,如DBase,FoxPro,Paradox等,这些数据库格式都可以用Visual Basic编辑和处理。Visual

21、Basic提供开放式数据连接,即ODBC功能,可通过直接访问或建立连接的方式使用并操作后台大型网络数据库,如SQL Server,Oracle等。在应用程序中,可以使用结构化查询语言SQL数据标准,直接访问服务器上的数据库,并提供了简单的面向对象的库操作指令和多用户数据库访问的加锁机制和网络数据库的SQL的编程技术,为单机上运行的数据库提供了SQL网络接口,以便在分布式环境中快速而有效地实现客户/服务器(Client/Server)方案4。利用动态数据交换(Dynamic Data Exchange)技术,可以把一种应用程序中的数据动态地链接到另一种应用程序中,使两种完全不同的应用程序建立起一

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

23、式文档(compound document),这种文档由来自多个不同应用程序的对象组成,文档中的每个对象都与原来的应用程序相联系,并可执行与原来应用程序完全相同的操作5。Visual Basic是一种高级程序设计语言,不具备低级语言的功能,对访问机器硬件的操作不太容易实现。但它可以通过动态链接库的技术将C/C+或汇编语言编写的程序加入到Visual Basic应用程序中,可以像调用内部函数一样调用其他语言编写的函数。此外,通过动态链接库,还可以调用Windows应用程序接口(API)函数,实现SDK所具有的功能6。2.2 Access简介Access是Office办公套件中一个极为重要的组成部

24、分。刚开始时微软公司是将Access单独作为一个产品进行销售的,后来微软发现如果将Access捆绑在Office中一起发售,将带来更加可观的利润,于是第一次将Access捆绑到Office97中,成为Office套件中的一个重要成员。现在它已经成为Office办公套件中不可缺少的部件了。自从1992年开始销售以来,Access 已经卖出了超过6000万份,现在它已经成为世界上最流行的桌面数据库管理系统。后来微软公司通过大量地改进,将Access的新版本功能变得更加强大。不管是处理公司的客户订单数据;管理自己的个人通讯录;还是大量科研数据的记录和处理,人们都可以利用它来解决大量数据的管理工作。除

25、了成为 Web 上数据交换的标准技术外,扩展标记语言(XML)也正迅速成为商务软件应用程序间交换数据时的首选技术方案。Microsoft Access 2003 提供有功能强大而直观的 XML 数据共享功能,而无须考虑平台、数据格式、协议、架构或商务规则之间的差异。利用熟悉的 Access 用户界面,您可以方便地利用 Jet 或 SQL Server 结构和数据创建 XML 数据或架构文档。同时,还可使用来自窗体、报表和数据访问页中其他应用程序的 XML 数据。例如,假设您的数据跨越各种不同的源分布:包括内部 SQL server、Excel 电子表格以及诸如 SAP 的其他数据提供程序。由于

26、这些源将 XML 用作自己的数据交换格式,因此可以在 Access 中创建一系列聚合查询,以将该数据拉入视图中,然后利用这些视图设计窗体和报表。通过简化架构和样式表的创建和应用,Access 还提供了便于控制数据的方法。Access可通过一种标准一致的方式,便捷地描述丰富的结构化XML数据,同时也便于与其他应用程序间实现数据传输。例如,可以使用Access创建描述数据结构的架构,然后将该架构发送给自己的供应商,以便他们准确了解您所期望的发票数据格式7。第3章 网络通讯程序的设计原理3.1 TCP/IP协议TCP/IP是国际互联网所采用进行网际互连的通信协议。IP互连协议(Internet Pr

27、otocol),负责主机之间的传输数据。TCP传输控制协议(Transmission Control Protocol),负责在应用程序之间传递数据。实际所称的TCP/IP协议包括了在国际互联网上应用的一组协议,互联网协议组是此协议组的另一个名字。这个协议组包括几种工作在不同层次上的网络协议,UDP用户数据报协议(User Datagram Protocol),提供给用户进程的无连接协议,也负责在应用程序之间无连接传递数据,但不执行正确性检查。ICMP互连网控制报文协议(Internet Control Message Protocol),处理主机间的差错和传送控制。ARP地址解析协议(Add

28、ress Resolution Protocol),负责将网络层地址转换成链路层地址。RARP反向地址解析协议(Reverse Address Resolution Protocol),负责将链路层地址转换成网络层地址。TCP/IP协议的核心是传输层协议(TCP、UDP)、网络层协议(IP)和物理接口层,这三层通常在操作系统的内核中实现。TCP/IP网络环境下的应用程序设计是通过网络系统编程界面Socket实现的,Socket提供应用程序与系统内核之间的网络编程接口。协议可以是可靠的可以是不可靠的。可靠的协议意味着当数据通过协议传递时,协议保证数据正确传输。可靠传输包括几个特征。首先,为了确保

29、数据正确传送,协议在通信应用程序之间互相交换确认信息。也就是说,程序每次发送一个报文时,都期望对方发送一个相当于说:“我得到这个报文”的确认信息。如果发送程序没有收到这样一个确认信息,程序将自动重新发送此报文,直到得到应答信息为止。其次,为了确保传输的数据有效,可靠协议在每次传输时,都包含一个或更多的校验和(CRC)。接收计算机重新计算校验和,与收到的校验和进行比较。如果不匹配,就表明在传输过程中发生了错误。传输控制协议TCP是一个使用校验和、确认信息以及其它可靠数据传输技术的可靠协议。相比之下,不可靠协议不能确保数据正确传输。协议试图传输数据,但不保证成功。而且,不可靠协议在传输失败后,并不

30、通知发送方应用程序。可将不可靠数据传输比作没有返回地址的信件。如果发送地址是错误的,由于邮递系统不能将信退回给你,所以你就不知道信件有没有送到。即使发送地址是正确的,也不能保证邮递系统不丢失你的信件8。TCPIP协议组中存在的两个基本数据服务是:字节流服务和数据报服务。使用字节流的协议将信息看作一串字节流进行传输。协议不管要求发送或接收数据的长度和传送数目,只是将数据看作一个简单的字节串流。使用数据报的协议将信息视作一个独立单元进行传输。协议单独发送每个数据报数据报之间不相互依赖。例如,假设你使用字节流协议发送5个数据段(每个有10字节)和一个包含50字节的数据段(总共100字节)。连接的接收

31、方可以按每次20字节读数据(要读5次)。传输控制协议是字节流协议。字节流协议不关心每个数据段的长度。如果应用程序使用字节流协议发送数据,则协议能够保证连接的另一端按照发送的顺序接收数据。相比之下,传输到同一目的地的多个数据报可能不会按发送顺序到达。如果接收方应用程序要求数据顺序一致,应用程序必须在数据到达后,校对这些数据。用户数据报协议和互连网协议使用数据报传输数据。数据报类似于信件。如果你在同一天给同一个人邮寄两封信,你无法知道那个人先收到那封信。同样,如果连续两天给两个人邮信,你也不能知道哪封信先收到。收到信的顺序和发送顺序可能相反。在TCP/IP术语中,端口(Port)类似于IP地址,I

32、P地址与主机地址是相联系的,端口和协议相联系。IP数据报保存目的和源IP地址,同样传输协议也保存源和目的端口号。如果端口这个概念对你来说很陌生,请考虑计算机上的硬件端口。你可能编写过往硬件端口送数据的程序。例如为了打印,如果没有其它程序的话,必须向串或并端口发送数据。PC机给它的端口命名和编号。例如,PC机的并行打印端口称为LPTl和LPT2,串行端口称为COM1和COM2。在Internet上,网络只是简单地对协议端口编号。在PC机,LPT1表示并行端口1。成千的PC机应用程序使用此方案。多年来,程序员编写PC程序时都假定LPT1表示并行打印端口1。同样,程序员将每个Internet协议端口

33、与一个特定的应用程序和功能联系在一起。Internet包括像FTP、Telnet和Mail这样广泛使用的应用程序采用的应用协议,在Internet上,这些应用程序使用一种叫做“通用口分配”的端口。通用口分配是特定应用程序广泛使用的一个协议端口。像PC程序员使用打印端口LPT1用于打印,Internet程序员也对具体应用程序使用许多协议端口。例如,平凡文件传输协议(FTP)的通用口分配是端口号21的。Telnet的通用口分配是端口号238。3.2 客户机/服务器模型客户机/服务器(C/S)模型是一种网络模型,它并不是定义了网络的层次结构,而是描述了一种网络程序运行的方式。客户机/服务器模型将网络

34、应用程序分为客户和服务器两部分。客户方对服务器方发送信息请求,服务器方对其做出相应回答,提供服务。在TCP/IP网络应用中,多数网络应用程序是使用客户机/服务器模型设计的。服务程序通常在一个众所周知的地址监听对服务的请求,也就是说,服务进程一直处于休眠状态,直到一个客户程序提出了请求信息。此时,服务程序被唤醒并且为客户提供服务,对客户的请求做出适当的反应。虽然基于连接的服务是设计客户/服务器应用程序的标准,但有些服务也是可以通过数据报Socket提供的。通常,网络应用程序包含两个独立的应用程序:客户程序和服务器程序。但是,也可以设计同时完成这两种功能的程序,例如,一些服务器程序如果不能完成一个

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

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

37、端口)和一个Socket联系起来。下面程序行显示了一个典型的函数调用:resultbind ( socket_handle, local_structure, socket_address, address_ length)无连接客户程序也对一个协议端口进行侦听。使用无连接协议的程序不和远地主机建立直接连接。无连接客户程序使用数据报发送网络服务请求,它不建立点到点连接。因此无连接客户程序必须在一个协议端口,对应答数据报进行侦听。与服务器程序一样,无连接客户程序也使用bind()函数让Socket执行体登记协议端口。也就是说,类似服务器程序,无连接客户程序告诉Socket执行体使用哪个协议端口进

38、行数据传输。Socket执行体处理传输层内UDP软件模块和客户程序之间的接口9。第4章 需求分析及开发方法4.1 需求分析一个即时通讯软件应提供基于TCP/IP网络的即时消息传送、消息广播、实时聊天等功能。列举如下:(1) 支持多账号。(2) 可以同时发送同一个消息给一个人,通过输入对方信息。(3) 可以同时发送一个消息给所有人。(4) 即使用户不在线,也能通过服务器发送离线消息。(5) 提供消息、聊天的历史记录,方便对信息的查看和管理。(6) 提供查看在线的人的功能。(7) 用户上线通知。(8) 用户下线更新(9) 有权限的人可以发系统广播通知(10) 查看用户信息(11) 更改个人信息(1

39、2) 开机启动设置(13) 主窗口总是浮在最上端(14) 速度快,占用资源少4.2 系统功能模块根据上述的需求分析,并针对个人所掌握的知识和自己毕业设计时间的限制,要做到面面俱到是不可能的,并考虑到作为局域网(校园网)聊天工具,终端用户数量较少,我设计的通讯软件借鉴了QQ、聊天室等即时聊天工具,聊天信息采用服务器转发方式,只要当前在线的用户都可以接收到,当然,也实现了两人之间私聊的功能。包括服务器程序和客户端程序,服务器包括聊天信息即时转发、系统日志记录、发送通知、以及数据库的备份、还原、初始化。客户端具有登陆,注册,修改个人信息,聊天等功能。4.3 系统功能需求图 这个即时通讯软件系统包括服

40、务器端和客户端,服务器端有聊天记录、系统设置、发布通告、数据库备份还原初始化、置顶的功能,客户端要求有登陆、注册、聊天和修改查看个人信息的功能,系统功能的需求图如下:图4.1 系统功能需求图4.4 开发方法介绍目前比较成熟的信息系统开发方法有:生命周期法、原型法、面向对象法等。生命周期法:把一个信息系统从其提出、分析、设计和使用,直到停止使用的整个生存期视为一个生命周期。整个生命周期划分为五个主要工作阶段:可行性分析阶段、系统分析阶段、系统设计阶段、系统实施阶段和系统运行、维护与评价阶段。通常采用结构化系统分析和系统设计方法,自上而下分析、设计、强调开发过程的整体性和全局性;开发过程在时间上基

41、本按阶段进行,任务明确;结合用户需求进行开发;开发周期长,维护不方便。适用于开发需求较明确固定的信息系统。原型法:是系统开发者在初步了解用户需求的基础上,开发出能实现系统基本功能的一个原型,再根据用户对原型使用与评价的意见,提出修改方案,修改完善原型,如此反复多次,直到得到用户满意的最终系统为止。开发过程以用户为中心,开发周期短。适用于开发需求不够明确或不断变化的软件。面向对象法:以类,类的继承,聚集等概念描述客观事物以及联系。为管理信息系统的开发提供了全新的思路,面向对象方法以对象为中心。其特征主要有模块性,继承性和类比性,动态连接性。其中原型法是近几年发展起来的一种开发方法,该方法从一个初

42、始信息要求的集合出发,在发展中逐步完善信息系统。本即时通讯软件采用的是原型法。使用原型法开发大体有以下几个步骤:(1) 确定系统需求。其中包括系统的应用范围、系统开发的经费估算等。(2) 设计初始原型。包括确定需求和开发工作模型,例如屏幕格式、功能菜单、报表格式以及对关键数据和功能的说明等。(3) 对初始原型进行需求迭代,不断进行修正或改进,直至得到一个用户满意的原型,从而终止原型迭代过程。(4) 如果需要,可写出系统必要成分的严格、详细的说明。(5) 原型效果考察。考察用户新加入的需求信息和组成成分的严格说明信息,看其对原型效果的影响,是否影响到原型的有效性,如果导致原型失败,应加以修正和改

43、进。原型法的生命周期提供了一种完整的、灵活的、近于动态的需求定义技术。它综合了所有提出的必要需求,建立原型就近似于预先需求的规格说明。对应于原型的工作模型可以进行必要的剪裁和组织,以便更接近目标系统。它可以综合用户、领导和原型开发人员的各方需求10。图4.2 原型法工作流程图第5章 总体设计5.1 设计思想服务器端和客户端需要分别设计,除了主聊天界面外,还加上了登录界面,以便管理。作为即时通讯软件系统,客户端信息全部来自于服务器,服务器端能实时掌握所有客户登录、退出、对话情况,并能实时转发、广播给相应客户。由于服务器要和多个客户联系,所以在设计中采用了Winsock控件数组的形式,其中下标为

44、0 的元素作为监听控件,当有客户登录、退出或者相互间发送消息时,能正确接收并作相应处理,其余控件数组元素当有客户连接时自动装入。客户端只需一个 Winsock控件,应具有随时连接、断开服务器的功能,也应具有对接收到的信息做出正确分析、处理的能力。在整个系统设计过程中,对客户端和服务器端的消息到达这一事件的设计和编码是系统的关键。5.2 关键通信技术Winsock本系统的开发平台是VB 6.0 ,采用了面向网络连接的Winsock控件。Winsock是不可见控件,控件文件名是MSWINSCK.OCX,全称为Microsoft Winsock Control,它能实现机器与机器间点对点的连接以及对

45、话,使用时要将此控件调入工具箱。Winsock控件可以使用两种协议:TCP协议和 UDP协议。使用TCP协议来实现服务器 - N 客户模式。UDP可以实现点对点无服务器通讯。TCP协议即数据传输协议,允许创建和维护与远程计算机的连接,使彼此可以进行数据传输。利用 TCP协议通讯必须分别建立客户应用程序和服务器应用程序。在创建客户应用程序时,必须知道服务器名或其 IP地址(RemoteHost 属性)及服务器进行侦听的端口(RemotePort属性) ,然后调用 Connect 方法。创建服务器应用程序时 ,应设置一个侦听端口(LocalPort 属性)并调用 listen 方法。当客户机需要连

46、接时(connect),就会发生 ConnectionRequest 事件。为了完成连接,可以在 ConnectionRequest 事件中调用Accept 方法。建立连接后 ,任何一方计算机都可以发送、接收对方数据。如果要发送数据,需调用 SendData 方法。当接收到数据时,会发生 DataArrival 事件,调用 DataArrival 事件中的 GetData方法就可以获得对方传送的数据11。Winsock控件属性:Protocol值为sckTCPProtocol时使用TCP/ IP协议,sckUDPProtocol使用UDP协议RemoteHost 准备连接远程机的 IP地址RemotePort 连接远程机的 IP端口号LocalPort 本地机 IP端口号Winsock控件方法:Connect 申请连接远程机Listen 设置监听Accept 建立实际连接Senddata 发送数据Getdata 接

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 办公文档 > 其他范文


备案号:宁ICP备20000045号-2

经营许可证:宁B2-20210002

宁公网安备 64010402000987号