毕业设计网络即时聊天系统设计与开发论文

上传人:仙*** 文档编号:32708198 上传时间:2021-10-15 格式:DOC 页数:58 大小:4.39MB
收藏 版权申诉 举报 下载
毕业设计网络即时聊天系统设计与开发论文_第1页
第1页 / 共58页
毕业设计网络即时聊天系统设计与开发论文_第2页
第2页 / 共58页
毕业设计网络即时聊天系统设计与开发论文_第3页
第3页 / 共58页
资源描述:

《毕业设计网络即时聊天系统设计与开发论文》由会员分享,可在线阅读,更多相关《毕业设计网络即时聊天系统设计与开发论文(58页珍藏版)》请在装配图网上搜索。

1、网络即时聊天系统设计与开发(客户端)摘要:本系统采用 WINSOCK 网络编程的技术,使用 Microsoft Visual Basic 6.0 开发平台,系统分为两个部分客户端和服务器端,是典型的 C/S 架构。其客户端和服务器端使用 TCP/IP 协议,依靠 Winsock 进行通讯,服务器通过建立 Winsock 控件数组实现多客户端同时连接。消息走向主要采用客户端发送服务器中转客户端接收的模式。论文详细阐述了网络即时聊天系统的详细设计流程。首先简要介绍了本系统开发所使用的数据库和编程工具,并对需求分析部分进行了详细的阐述,并给出了各功能层次图。在详细设计部分,按照本聊天系统的功能实现划

2、分了“登陆” , “MYIM 窗体” ,“查找用户窗体” , “即时聊天窗体”四块,分别对其设计过程进行了详细的阐述;接下来的章节,仍然是按照实现的功能分节对软件功能的编码实现进行了详细阐述。关键词:TCP/IP;WINSOCK;C/S;网络通信The Design and Development of Network Instant Chat System (Client)Abstract:This system was designed on the basis of WINSOCK network programming and applied Microsoft Visual Basi

3、c 6.0 platform of development, which is mainly comprised of two partsthe client part and server part. It is a typical C/S module. Both parts use TCP/IP protocol and Winsock to communicate. By building Winsock control array the server port can realize a simultaneous connection of many client ports. T

4、he messages sending mainly applies the module of sending by client porttransforming by server portreceiving by the server port. This paper will introduce process of this system detaily. First we introduce the tools of database and program that we need to develop this system, and make a detailed disc

5、uss of needing analysis, enumerate every diagram of function part. We divide into four parts in the detailed design procedure. “LOGIN”, “MYIMFORM”, “SERACHFORM”,“CHATFORM”, Introduce separately to the designing idea. In the next part we still introduce function code exactly, and make a further intro

6、duce to debugging part.目录一、前言一、前言.11.1 项目开发的主要内容 .11.2 项目开发运用到的主要技术 .1二、二、 数据库与工具简介数据库与工具简介.12.1 基于 TCP/IP 协议的 C/S 模式体系结构.12.2 MICROSOFT ACCESS 2000 简介.22.3 编程工具 VISUAL BASIC 6.0 简介.3三、总体设计三、总体设计.43.1 引言.43.2 数据描述.5四、四、 系统设计系统设计.84.1 系统流程图.84.2 界面设计.9五、五、 软件功能的编码实现软件功能的编码实现.115.1 实现窗口鼠标整体拖动.115.2 “好

7、友” , “用户” , “分组”按钮的整合实现菜单按钮 .115.3 个人资料按钮.135.4 调出查找用户面板按钮.135.5 “添加好友”功能.14六、总结六、总结.14网络即时聊天系统设计与开发(客户端)一、前言计算机设计之初,只是为了运用于科学研究,因为其非同寻常的运算速度而大大简化了人类的脑力劳动。随着社会的快速发展,计算机已经不再是及其昂贵并且功能单一的纯粹的计算工具。当今的计算机不仅性能越来越好,体积也越来越小,设计的完美伴随的并不是价格的提升,而是越来越大众化。个人电脑是当代社会计算机的主要表现形式。在个人电脑和网络流行的今天,人类的交流方式也越来越丰富,以全球互联网络为载体的

8、网络即时聊天工具软件越来越多的出现,不仅大大节省了信息传递所使用的能源,更体现着人类社会的丰富多彩。本软件的开发,主要是针对小型用户群,能实现基本的即时交流功能,能应用于局域网和互联网,很适合作为学校及企业内部交流工具。1.1 项目开发的主要内容本系统能够在安装有 Microsoft Office 或其他带有 Microsoft Visual Basic 6.0 运行库的 Microsoft Windows 98 以及更高版本的操作系统环境下运行,设计并实现的功能除了基本的即时聊天,还有文件传输,自定义表情等。1.2 项目开发运用到的主要技术1. 采用 Microsoft Access 200

9、0 来完成数据库管理平台开发 。2. 采用 Microsoft Visual Basic 6.0 开发平台来完成系统的前台环境(客户端)开发 。3. 采用 Winsock 来实现客户端和服务器的通讯。二、 数据库与工具简介2.1 基于 TCP/IP 协议的 C/S 模式体系结构本聊天系统包括客户端和服务器,即采用客户端服务器架构,客户端发送、接收信息,服务器端在客户端之间转发信息。传输层协议为 TCP/IP 协议。客户机/服务器(C/S)结果是当前非常流行的数据库系统结构。在这种体系结构中,客户机提出请求,服务器对客户机的服务请求做出回应。每一个服务器都为整个局域网系统提供自己最擅长的服务,让

10、所有客户机来分享;客户机上的应用程序借助于服务器的服务功能实现复杂的应用功能。在 C/S 结构中,数据库存储层出于服务器上,应用层和数据界面层出于客户机上。在 C/S 数据库服务器结构中,客户机负责管理用户界面,接收用户数据、处理应用逻辑、生成数据库服务请求,并将服务请求发送给数据库服务器,同时接收数据库服务器返回的结果,最后在将返回的结果按照一定的格式或方式显示给客户机。C/S 系统结构使整个系统具有较好的性能。C/S 结构的通讯成本也比较低,主要原因在于:(1) 降低了数据传输量,数据库服务器返回给客户机的仅是执行数据操作后的结果数据。(2) 由于许多应用逻辑处理由客户机来完成,因而减少了

11、许多的不必要的与服务器的通信开销。TCP/IP 协议的特点:Internet 上的 TCP/IP 协议之所以能够得到迅速发展,不仅因为它是美国军方指定使用的通信协议,更重要的是它恰恰适应了世界范围内的数据通信的需要。TCP/IP 协议主要有以下几个特点:开放的协议标准,可以免费使用,并且独立与特定的计算机硬件与操作系统;独立与特定的网络硬件,可以运行在局域网、广域网,更适用与互联网中;统一的网络地址分配方案,使得整个 TCP/IP 设备在网中都具有唯一的地址;标准化的高层协议,可以提供多种可靠的用户服务。TCP 协议的特点是:提供面向连接的、可靠的、全双工通信;支持数据流的传输;传输连接的可靠

12、建立与释放;提供流量控制与拥塞控制。2.2 Microsoft Access 2000 简介 关于数据库的建立,我们选择了 Microsoft Access 2000 作为工具,因为和商业化的 SQL server 相比,虽然 Access 在安全性和处理并发能力等方面略逊一筹,但是 Access 的优点在于它能使用数据表示图或自定义窗体收集信息。数据表示图提供了一种类似于 Excel 的电子表格,可以使数据库一目了然。微软公司通过大量地改进,将 Access 的新版本功能变得比最初版本强大许多。不管是处理公司的客户订单数据;管理自己的个人通讯录;还是大量科研数据的记录和处理,人们都可以利用它

13、来解决大量数据的管理工作。Access 的组成部分:表表是 Access 应用程序的人机交互界面,基本上是所建数据库中的表加上各种可视化的组件元素。查询 查询的本质就是 SQL 的数据操纵语句,利用查询可以通过不同的方法来查看更改和分析数据,对表、记录、字段的多数据操作都可通过查询来完成。报表报表对象实际上就是一些制定好的特殊查询,不过这是只具有一个查询结果的显示界面,便于打印分析。宏宏是指一个或多个操作的集合,其中每个操作实现特定的功能。宏可以使某些普通的任务自动完成。模块模块就是数据库程序中的程序文件和过程文件。每一个模块可以包含一个或多个子程序、函数或属性。Access 数据库窗口 子数

14、据表用户可以使用表、查询窗体和子窗体数据表来查看子数据表。子数据表可以绑定表、查询或窗体。数据访问页数据访问页是一个 Web 页,可以用来添加、编辑、查看或处理 Microsoft Access 数据库或 SQL Server 数据库中的当前数据。2.3 编程工具 Visual Basic 6.0 简介本系统的编程工具使用 Visual Basic 6.0。Visual Basic 6.0 是美国微软公司开发的一个面向对象的可视化编程工具,经过多次换代后,它已经成为一个全新的成熟的高端产品。 “Visual”意为“可视化的” ,指的是一种开发图形用户界面的方法,所以 Visual Basic

15、是基于 Basic 的可视化的程序设计语言。在 Visual Basic 中,一方面继承了 Basic 所具有的程序设计语言简单易用的特点,另一方面在其编程系统中采用了面向对象、事件驱动的编程机制,用一种巧妙的方法把 Windows 的编程复杂性封装起来,提供了一种所见即所得的可视化程序设计方法。 Visual Basic 6.0 是一种可视化的编程语言,利用这种可视化技术进行编程,能使编程工作变得轻松、快捷,摆脱了面向过程语言的虚度细节,而将主要精力其中在解决实际问题和设计友好界面上。同时,VB 在数据库开发方面能读取和访问 Access、Excel、FoxPro 和 ODBC 等多种数据库

16、,并能够利用 VB 自身所带的数据库引擎创建 Access 数据库,所以 VB 在管理信息系统(MIS)的开发和建设方面得到了广泛的应用。VB6.0 包括三个版本:学习版、专业版、企业版是在相同的基础上建立起来的,以满足不同层次的用户需要。三、总体设计3.1 引言3.1.1 目的本总体设计说明是根据编写网络即时聊天系统的前期需求编写的。涉及客户端登录,即时聊天,文件传输,资料修改,好友添加删除,服务端数据库建立,登录信息监控,BUG 报错等方面的总体设计思想。在和同组同学们的共同研究讨论下,我们完成了对网络即时聊天系统总体设计。3.1.2 专业词定义数据流图 DFD(Data Flow Dia

17、gram): 数据流程图描述管理信息系统如何操作和处理各种数据。反映系统的动态特征。表达了系统分析人员对现有系统的认识,对目标系统的认识和对目标系统的设想。是系统的功能模型,通过流程建模,把系统的功能进行详细分析,从而使系统分析员可以更好的地与用户交流。数据流程图表达了数据和处理过程的关系,描绘系统的逻辑模型,图中没有任何具体的物理元素,只是描绘信息在系统中流动和处理的情况。因为数据流程图是逻辑系统的图形表示,即使不是专业的技术人员也容易理解,所以是极好的通信工具。此外,设计数据流程图只考虑系统必须完成的基本逻辑功能,完全不考虑如何具体的实现这些功能,所以它是软件设计很好的出发点。数据流程图由

18、四种基本符号组成:(1)正方形(或立方体)代表数据的源点或终点(2)圆脚矩形(或圆形)代表变换数据的处理(3)开口矩形(或两条平行线)代表数据存储(4)箭头代表数据流,即特定的数据的流动方向3.1.3.字典DD(Data Dictionary):是关于数据的信息的集合,也就是对数据流图中所包含的元素的定义的集合。数据字典由四类元素定义组成:数据流 、数据项 、数据存储 、数据处理。数据流是数据结构在系统内传输的路径。数据项是不可再分割的数据单位数据存储是数据结构停留或保存的地方,也是数据流的来源和去向之一。处理过程的具体处理逻辑一般用判定表或判定树来描述。数据结构反映了数据之间的组合关系。一个

19、数据结构可由若干个数据项组成也可由若干个数据结构组成,或由若干个数据项和数据结构组成。3.2 数据描述3.2.1 系统数据流程图3.2.2 删除好友数据流程图3.2.3 消息传输功能层次图3.2.4 客户端功能层次图3.2.5 数据字典数据字典是系统中各类数据描述的集合,是进行详细数据收集和数据分析所获得的主要成果。数据字典在数据库设计中占有很重要的地位。数据字典通常包括数据项、数据结构、数据流、数据存储和处理过程五个部分。其中数据项是数据的最小组成单位,若干个数据项可以组成一个数据结构。数据字典通过对数据项和数据结构的定义来描述数据流、数据存储的逻辑内容。名字:temps 表描述:用来存储用

20、户登录时输入的个人信息和系统信息定义:temps 表= username(用户名)+ datetime(登录时的时间)+ip(服务器 IP 地址)位置:User 表名字:Info 表描述:用来存储用户的个人信息定义:temps 表= username(用户名)+sex(性别)+country(国籍)+birth(生日)+age(年龄)+webpage(个人主页)+about(个人资料)位置:Use 表名字:新用户信息描述:用户个人资料中的详细信息定义:新用户信息= 性别+国籍+生日+年龄+个人主页+个人资料位置:Info 表名字:要查找的用户名描述:用户想要添加为好友的用户名位置:Info 表

21、、Buddies 表名字:密码描述:用户登录时输入的惟一确定一个用户的信息,限定为不小于四位的字符或数字位置:Users 表名字:Ignores 表描述:用来存储被删除的好友信息定义:Ignores 表= username(用户名)+ignore(删除的好友名)位置:User 表名字:Buddies 表描述:用来存储好友信息定义:Buddies 表= user(用户名)+buddy(用户所加的好友)位置:User 表四、 系统设计4.1 系统流程图准备发送消息发送消息给对方用户用户点击“发送”按钮判断对方用户是否在线判断是否可以发送发送消息对方接受并显示消息连接服务器将消息写入离线消息记录名字

22、:登录信息描述:用来存储用户登录时输入的基本信息定义:登录信息=用户名+密码+服务器 IP 地址+是否新用户+是否记住密码+是否隐身登录。位置:Info 表、temps 表、Users 表名字:要删除的好友名描述:由于什么原因,用户要删除的好友名位置:Ignores 表、Buddies 表图 1 消息发送流程图当准备发送消息时,要先检测时候可以发送,内容包括是否在线消息的完整性,如果网络畅通或者消息不为空或没超过最大字数,则可以发送,否则不能发送,当连接到服务器后需判断对方用户时候在线,若在线则把消息发送给对方用户,如不在,则将消息写入离线消息记录,服务器会在对方用户上线时通知该用户。当传送文

23、件时,同样需要检查是否可以发送,只有当双方同时在线才可以发送。否则不能发送。 准备发送文件发送文件给对方用户用户点击发送按钮发送文件对方接受并保存文件判断是否可以发送准备登陆客户端发送连接请求验证用户信息接受连接并回复发送登陆用户信息至服务器发出“获取好友列表”请求返回“好友列表”登陆成功图 2 系统登录流程图 图 3 文件传输流程图4.2 界面设计界面美工主要运用 Adobe Photo Shop 7.0 来制作,详细设计如下:4.2.1 登陆窗体4.2.2 MyIM 主窗体本窗体是网络即时聊天系统登录成功之后的主窗体,实现聊天,文件传输等功能集成,窗体截图如下:4.2.3 查找用户窗体4.

24、2.4 即时聊天窗体五、 软件功能的编码实现5.1 实现窗口鼠标整体拖动 Private Sub Bar_MouseDown(Button As Integer, Shift As Integer, X As Single, Y As Single)On Error Resume NextReleaseCapture SendMessage MyIM.hWnd, WM_NCLBUTTONDOWN, HTCAPTION, ByVal 0&End Sub5.2 “好友” , “用户” , “分组”按钮的整合实现菜单按钮Private Sub Command1_Click(Index As Inte

25、ger)On Error Resume NextSelect Case IndexCase 0 TreeView1.Visible = True OnLine.Visible = False OrgTree.Visible = FalseCase 2 If IniGRP = True Then MyIM.OrgTree.Visible = True MyIM.TreeView1.Visible = False MyIM.OnLine.Visible = False Exit SubCase 1If OnLined = True ThenMyIM.OrgTree.Visible = False

26、MyIM.TreeView1.Visible = False MyIM.OnLine.Visible = True Exit SubEnd IfEnd Sub5.2.1 “好友”按钮的树形控件结构Private Sub TreeView1_NodeClick(ByVal Node As MSComctlLib.Node)On Error Resume NextIf TreeView1.SelectedItem.Text And Right(TreeView1.SelectedItem.Key, 2) = () Then PopupMenu mnuBuddyEnd IfSleeping = 0E

27、nd Sub5.2.2 “用户”按钮的树形控件结构Private Sub OrgTree_NodeClick(ByVal Node As MSComctlLib.Node)On Error Resume NextIf Right(OrgTree.SelectedItem.Key, 2) = | Then Me.PopupMenu mnuGROUP, 0End IfIf Right(OrgTree.SelectedItem.Key, 2) = () ThenDim yu As IntegerFor yu = 1 To TreeView1.Nodes.CountIf Right(TreeView1

28、.Nodes(yu).Key, 2) = () And TreeView1.Nodes(yu).Text = OrgTree.SelectedItem.Text Then TreeView1.Nodes(yu).Selected = True Me.PopupMenu mnuBuddy, 0 Exit SubEnd IfNext yuEnd IfEnd Sub5.2.3 “分组”按钮的树形控件结构Private Sub OnLine_NodeClick(ByVal Node As MSComctlLib.Node)Me.PopupMenu AF, 0Sleeping = 0End Sub5.3

29、 个人资料按钮Private Sub Image15_Click()On Error GoTo de frmSetInfo.Show Open App.Path & Info.dat For Random As gFileNum Len = Len(MyPersonalInfo) Get #gFileNum, 1, MyPersonalInfo Dim Sex As String Dim Temp As String If MyPersonalInfo.Sex = Male ThenfrmSetInfo.Option1.Value = True Else frmSetInfo.Option2.

30、Value = False End If frmSetInfo.Text1.Text = Trim(MyPersonalInfo.Country) frmSetInfo.Text2.Text = Trim(MyPersonalInfo.BirthDay) frmSetInfo.Text3.Text = Trim(MyPersonalInfo.Age) frmSetInfo.Text4.Text = Trim(MyPersonalInfo.Webpage) Temp = Replace(Trim(MyPersonalInfo.About), /crlf, vbCrLf) frmSetInfo.R

31、ichTextBox1.Text = Temp Close #gFileNumde:err.ClearEnd Sub5.4 调出查找用户面板按钮Private Sub Label8_Click()FrmSearch1.ShowEnd Sub5.5 “添加好友”功能Private Sub AddFromList_Click()On Error Resume NextDim Temp As String, LNumber As Integer Temp = OnLine.SelectedItem.Text If VerX = False Then LNumber = InStr(1, Temp,

32、) Temp = Right(Temp, Len(Temp) - LNumber)Winsock1.SendData .AddBuddy & Label5.Caption & & Trim$(Temp) Else Winsock1.SendData .AddBuddy & Label5.Caption & & Trim$(Temp) End IfEnd Sub六、总结在这个软件设计的最初,我们即按照老师的要求一步一步往下做,努力作好需求分析。因为在软件的开发过程中需求分析是十分重要的。在初步了解的基础上,我们根据老师给予的关于即时聊天系统设计思路的讲解,对系统进行了详细的需求分析。这样就使我们

33、对于网络即时聊天系统的开发有了一个大致的思路。在最初的几个星期里,我们一直在做完善需求分析的重复工作。这样就为下一步的设计打下了坚实的基础。到了数据库设计阶段,首先选择了 ACCESS 2000 作为数据库管理系统。因为我们需要的数据库并不是十分复杂,经过一段时间的共同努力,我们的数据库建立成功了。下一阶段就到了编程阶段了,在这个阶段我们首先考虑的是界面,一个界面设计的好坏直接关系到使用者的方便程度,于是老师提出的要求就是实用。在实用的基础上尽量美观大方。我们经过反复的改正后,界面固定下来。然后就进入编写程序阶段了,在编程过程中,我们借鉴了很多资料,同时也请教了其他有经验的同学。在可以实现同一

34、功能的多个控件中经过仔细研究,确定了最优的控件。这样在老师的要求和帮助下,我们的界面逐渐的得以完善并最终确定下来,到了真正编写代码的时候,我们在需求分析做的努力逐渐显示出来,因为在这个过程中,我们几乎没有遇到什么十分棘手的问题,各项功能也随之增加。在经过和老师的交流讨论之后,我们的设计也逐渐进入了尾声。这样,我们的设计就基本上完成了。在接下来的时间里,我们继续对我们的设计进行优化,包括界面的美观,以及程序的设计。在严格的测试后,逐渐使网络即时聊天系统不再出现大的错误,能够很稳定的运行。参考文献1 曾建潮.软件工程. 武汉理工大学出版社,2003.82 龚正虎.现代 TCP/IP 网络原理与技术

35、. 国防工业出版社, 2002.93 龚沛曾等.VB 程序设计教程.高等教育出版社,2000.74 熊桂喜.王小虎.李学农.计算机网络.清华大学出版社,1997.12 5 黄超.Windows 网络编程.人民邮电出版社,2003.1 6 殷肖川.网络编程与开发技术.西安交通大学出版社,2003 7 CSDN 综合社区.http:/ 褚建立 刘彦舫.计算机网络技术实用教程(第三版).电子工业出版社,2005.5 9 罗军舟.TCP/IP 协议及网络编程技术. 清华大学出版社, 2004.10 10 任泰明.TCP/IP 协议与网络编程. 西安电子科技大学出版社, 2004.4 11 王定. 陈波

36、. INTERNET 简明教程(第四版). 清华大学出版社, 2005.512 邓全良. WINSOCK 网络程序设计. 中国铁道出版社,2002.7 13 Kevin Burns . TCP/IP 分析与故障诊断. 清华大学出版社, 2005.1 14 鲁士文.计算机网络协议和实现技术. 清华大学出版社, 2000.7 15 季福坤等.数据通信与计算机网络. 中国水利水电出版社, 2004.8 16 梁磊等. TCP/IP 网络技术(基于 WINDOWS 2000). 电子工业出版社, 2004.5网络即时聊天系统设计与开发(客户端)摘要:本系统采用 WINSOCK 网络编程的技术,使用 M

37、icrosoft Visual Basic 6.0 开发平台,系统分为两个部分客户端和服务器端,是典型的 C/S 架构。其客户端和服务器端使用 TCP/IP 协议,依靠 Winsock 进行通讯,服务器通过建立 Winsock 控件数组实现多客户端同时连接。消息走向主要采用客户端发送服务器中转客户端接收的模式。论文详细阐述了网络即时聊天系统的详细设计流程。首先简要介绍了本系统开发所使用的数据库和编程工具,并对需求分析部分进行了详细的阐述,并给出了各功能层次图。在详细设计部分,按照本聊天系统的功能实现划分了“登陆” , “MYIM 窗体” ,“查找用户窗体” , “即时聊天窗体”四块,分别对其设

38、计过程进行了详细的阐述;接下来的章节,仍然是按照实现的功能分节对软件功能的编码实现进行了详细阐述。关键词:TCP/IP;WINSOCK;C/S;网络通信The Design and Development of Network Instant Chat System (Client)Abstract:This system was designed on the basis of WINSOCK network programming and applied Microsoft Visual Basic 6.0 platform of development, which is mainly

39、comprised of two partsthe client part and server part. It is a typical C/S module. Both parts use TCP/IP protocol and Winsock to communicate. By building Winsock control array the server port can realize a simultaneous connection of many client ports. The messages sending mainly applies the module o

40、f sending by client porttransforming by server portreceiving by the server port. This paper will introduce process of this system detaily. First we introduce the tools of database and program that we need to develop this system, and make a detailed discuss of needing analysis, enumerate every diagra

41、m of function part. We divide into four parts in the detailed design procedure. “LOGIN”, “MYIMFORM”, “SERACHFORM”,“CHATFORM”, Introduce separately to the designing idea. In the next part we still introduce function code exactly, and make a further introduce to debugging part.目录一、前言一、前言.11.1 项目开发的主要内

42、容 .11.2 项目开发运用到的主要技术 .1二、二、 数据库与工具简介数据库与工具简介.12.1 基于 TCP/IP 协议的 C/S 模式体系结构.12.2 MICROSOFT ACCESS 2000 简介.22.3 编程工具 VISUAL BASIC 6.0 简介.3三、总体设计三、总体设计.43.1 引言.43.2 数据描述.5四、四、 系统设计系统设计.84.1 系统流程图.84.2 界面设计.9五、五、 软件功能的编码实现软件功能的编码实现.115.1 实现窗口鼠标整体拖动.115.2 “好友” , “用户” , “分组”按钮的整合实现菜单按钮 .115.3 个人资料按钮.135.4

43、 调出查找用户面板按钮.135.5 “添加好友”功能.14六、总结六、总结.14网络即时聊天系统设计与开发(客户端)一、前言计算机设计之初,只是为了运用于科学研究,因为其非同寻常的运算速度而大大简化了人类的脑力劳动。随着社会的快速发展,计算机已经不再是及其昂贵并且功能单一的纯粹的计算工具。当今的计算机不仅性能越来越好,体积也越来越小,设计的完美伴随的并不是价格的提升,而是越来越大众化。个人电脑是当代社会计算机的主要表现形式。在个人电脑和网络流行的今天,人类的交流方式也越来越丰富,以全球互联网络为载体的网络即时聊天工具软件越来越多的出现,不仅大大节省了信息传递所使用的能源,更体现着人类社会的丰富

44、多彩。本软件的开发,主要是针对小型用户群,能实现基本的即时交流功能,能应用于局域网和互联网,很适合作为学校及企业内部交流工具。1.1 项目开发的主要内容本系统能够在安装有 Microsoft Office 或其他带有 Microsoft Visual Basic 6.0 运行库的 Microsoft Windows 98 以及更高版本的操作系统环境下运行,设计并实现的功能除了基本的即时聊天,还有文件传输,自定义表情等。1.2 项目开发运用到的主要技术1. 采用 Microsoft Access 2000 来完成数据库管理平台开发 。2. 采用 Microsoft Visual Basic 6.

45、0 开发平台来完成系统的前台环境(客户端)开发 。3. 采用 Winsock 来实现客户端和服务器的通讯。二、 数据库与工具简介2.1 基于 TCP/IP 协议的 C/S 模式体系结构本聊天系统包括客户端和服务器,即采用客户端服务器架构,客户端发送、接收信息,服务器端在客户端之间转发信息。传输层协议为 TCP/IP 协议。客户机/服务器(C/S)结果是当前非常流行的数据库系统结构。在这种体系结构中,客户机提出请求,服务器对客户机的服务请求做出回应。每一个服务器都为整个局域网系统提供自己最擅长的服务,让所有客户机来分享;客户机上的应用程序借助于服务器的服务功能实现复杂的应用功能。在 C/S 结构

46、中,数据库存储层出于服务器上,应用层和数据界面层出于客户机上。在 C/S 数据库服务器结构中,客户机负责管理用户界面,接收用户数据、处理应用逻辑、生成数据库服务请求,并将服务请求发送给数据库服务器,同时接收数据库服务器返回的结果,最后在将返回的结果按照一定的格式或方式显示给客户机。C/S 系统结构使整个系统具有较好的性能。C/S 结构的通讯成本也比较低,主要原因在于:(1) 降低了数据传输量,数据库服务器返回给客户机的仅是执行数据操作后的结果数据。(2) 由于许多应用逻辑处理由客户机来完成,因而减少了许多的不必要的与服务器的通信开销。TCP/IP 协议的特点:Internet 上的 TCP/I

47、P 协议之所以能够得到迅速发展,不仅因为它是美国军方指定使用的通信协议,更重要的是它恰恰适应了世界范围内的数据通信的需要。TCP/IP 协议主要有以下几个特点:开放的协议标准,可以免费使用,并且独立与特定的计算机硬件与操作系统;独立与特定的网络硬件,可以运行在局域网、广域网,更适用与互联网中;统一的网络地址分配方案,使得整个 TCP/IP 设备在网中都具有唯一的地址;标准化的高层协议,可以提供多种可靠的用户服务。TCP 协议的特点是:提供面向连接的、可靠的、全双工通信;支持数据流的传输;传输连接的可靠建立与释放;提供流量控制与拥塞控制。2.2 Microsoft Access 2000 简介

48、关于数据库的建立,我们选择了 Microsoft Access 2000 作为工具,因为和商业化的 SQL server 相比,虽然 Access 在安全性和处理并发能力等方面略逊一筹,但是 Access 的优点在于它能使用数据表示图或自定义窗体收集信息。数据表示图提供了一种类似于 Excel 的电子表格,可以使数据库一目了然。微软公司通过大量地改进,将 Access 的新版本功能变得比最初版本强大许多。不管是处理公司的客户订单数据;管理自己的个人通讯录;还是大量科研数据的记录和处理,人们都可以利用它来解决大量数据的管理工作。Access 的组成部分:表表是 Access 应用程序的人机交互界

49、面,基本上是所建数据库中的表加上各种可视化的组件元素。查询 查询的本质就是 SQL 的数据操纵语句,利用查询可以通过不同的方法来查看更改和分析数据,对表、记录、字段的多数据操作都可通过查询来完成。报表报表对象实际上就是一些制定好的特殊查询,不过这是只具有一个查询结果的显示界面,便于打印分析。宏宏是指一个或多个操作的集合,其中每个操作实现特定的功能。宏可以使某些普通的任务自动完成。模块模块就是数据库程序中的程序文件和过程文件。每一个模块可以包含一个或多个子程序、函数或属性。Access 数据库窗口 子数据表用户可以使用表、查询窗体和子窗体数据表来查看子数据表。子数据表可以绑定表、查询或窗体。数据

50、访问页数据访问页是一个 Web 页,可以用来添加、编辑、查看或处理 Microsoft Access 数据库或 SQL Server 数据库中的当前数据。2.3 编程工具 Visual Basic 6.0 简介本系统的编程工具使用 Visual Basic 6.0。Visual Basic 6.0 是美国微软公司开发的一个面向对象的可视化编程工具,经过多次换代后,它已经成为一个全新的成熟的高端产品。 “Visual”意为“可视化的” ,指的是一种开发图形用户界面的方法,所以 Visual Basic 是基于 Basic 的可视化的程序设计语言。在 Visual Basic 中,一方面继承了 B

51、asic 所具有的程序设计语言简单易用的特点,另一方面在其编程系统中采用了面向对象、事件驱动的编程机制,用一种巧妙的方法把 Windows 的编程复杂性封装起来,提供了一种所见即所得的可视化程序设计方法。 Visual Basic 6.0 是一种可视化的编程语言,利用这种可视化技术进行编程,能使编程工作变得轻松、快捷,摆脱了面向过程语言的虚度细节,而将主要精力其中在解决实际问题和设计友好界面上。同时,VB 在数据库开发方面能读取和访问 Access、Excel、FoxPro 和 ODBC 等多种数据库,并能够利用 VB 自身所带的数据库引擎创建 Access 数据库,所以 VB 在管理信息系统

52、(MIS)的开发和建设方面得到了广泛的应用。VB6.0 包括三个版本:学习版、专业版、企业版是在相同的基础上建立起来的,以满足不同层次的用户需要。三、总体设计3.1 引言3.1.1 目的本总体设计说明是根据编写网络即时聊天系统的前期需求编写的。涉及客户端登录,即时聊天,文件传输,资料修改,好友添加删除,服务端数据库建立,登录信息监控,BUG 报错等方面的总体设计思想。在和同组同学们的共同研究讨论下,我们完成了对网络即时聊天系统总体设计。3.1.2 专业词定义数据流图 DFD(Data Flow Diagram): 数据流程图描述管理信息系统如何操作和处理各种数据。反映系统的动态特征。表达了系统

53、分析人员对现有系统的认识,对目标系统的认识和对目标系统的设想。是系统的功能模型,通过流程建模,把系统的功能进行详细分析,从而使系统分析员可以更好的地与用户交流。数据流程图表达了数据和处理过程的关系,描绘系统的逻辑模型,图中没有任何具体的物理元素,只是描绘信息在系统中流动和处理的情况。因为数据流程图是逻辑系统的图形表示,即使不是专业的技术人员也容易理解,所以是极好的通信工具。此外,设计数据流程图只考虑系统必须完成的基本逻辑功能,完全不考虑如何具体的实现这些功能,所以它是软件设计很好的出发点。数据流程图由四种基本符号组成:(1)正方形(或立方体)代表数据的源点或终点(2)圆脚矩形(或圆形)代表变换

54、数据的处理(3)开口矩形(或两条平行线)代表数据存储(4)箭头代表数据流,即特定的数据的流动方向3.1.3.字典DD(Data Dictionary):是关于数据的信息的集合,也就是对数据流图中所包含的元素的定义的集合。数据字典由四类元素定义组成:数据流 、数据项 、数据存储 、数据处理。数据流是数据结构在系统内传输的路径。数据项是不可再分割的数据单位数据存储是数据结构停留或保存的地方,也是数据流的来源和去向之一。处理过程的具体处理逻辑一般用判定表或判定树来描述。数据结构反映了数据之间的组合关系。一个数据结构可由若干个数据项组成也可由若干个数据结构组成,或由若干个数据项和数据结构组成。3.2

55、数据描述3.2.1 系统数据流程图3.2.2 删除好友数据流程图3.2.3 消息传输功能层次图3.2.4 客户端功能层次图3.2.5 数据字典数据字典是系统中各类数据描述的集合,是进行详细数据收集和数据分析所获得的主要成果。数据字典在数据库设计中占有很重要的地位。数据字典通常包括数据项、数据结构、数据流、数据存储和处理过程五个部分。其中数据项是数据的最小组成单位,若干个数据项可以组成一个数据结构。数据字典通过对数据项和数据结构的定义来描述数据流、数据存储的逻辑内容。名字:temps 表描述:用来存储用户登录时输入的个人信息和系统信息定义:temps 表= username(用户名)+ date

56、time(登录时的时间)+ip(服务器 IP 地址)位置:User 表名字:Info 表描述:用来存储用户的个人信息定义:temps 表= username(用户名)+sex(性别)+country(国籍)+birth(生日)+age(年龄)+webpage(个人主页)+about(个人资料)位置:Use 表名字:新用户信息描述:用户个人资料中的详细信息定义:新用户信息= 性别+国籍+生日+年龄+个人主页+个人资料位置:Info 表名字:要查找的用户名描述:用户想要添加为好友的用户名位置:Info 表、Buddies 表名字:密码描述:用户登录时输入的惟一确定一个用户的信息,限定为不小于四位的

57、字符或数字位置:Users 表名字:Ignores 表描述:用来存储被删除的好友信息定义:Ignores 表= username(用户名)+ignore(删除的好友名)位置:User 表名字:Buddies 表描述:用来存储好友信息定义:Buddies 表= user(用户名)+buddy(用户所加的好友)位置:User 表四、 系统设计4.1 系统流程图准备发送消息发送消息给对方用户用户点击“发送”按钮判断对方用户是否在线判断是否可以发送发送消息对方接受并显示消息连接服务器将消息写入离线消息记录名字:登录信息描述:用来存储用户登录时输入的基本信息定义:登录信息=用户名+密码+服务器 IP 地

58、址+是否新用户+是否记住密码+是否隐身登录。位置:Info 表、temps 表、Users 表名字:要删除的好友名描述:由于什么原因,用户要删除的好友名位置:Ignores 表、Buddies 表图 1 消息发送流程图当准备发送消息时,要先检测时候可以发送,内容包括是否在线消息的完整性,如果网络畅通或者消息不为空或没超过最大字数,则可以发送,否则不能发送,当连接到服务器后需判断对方用户时候在线,若在线则把消息发送给对方用户,如不在,则将消息写入离线消息记录,服务器会在对方用户上线时通知该用户。当传送文件时,同样需要检查是否可以发送,只有当双方同时在线才可以发送。否则不能发送。 准备发送文件发送

59、文件给对方用户用户点击发送按钮发送文件对方接受并保存文件判断是否可以发送准备登陆客户端发送连接请求验证用户信息接受连接并回复发送登陆用户信息至服务器发出“获取好友列表”请求返回“好友列表”登陆成功图 2 系统登录流程图 图 3 文件传输流程图4.2 界面设计界面美工主要运用 Adobe Photo Shop 7.0 来制作,详细设计如下:4.2.1 登陆窗体4.2.2 MyIM 主窗体本窗体是网络即时聊天系统登录成功之后的主窗体,实现聊天,文件传输等功能集成,窗体截图如下:4.2.3 查找用户窗体4.2.4 即时聊天窗体五、 软件功能的编码实现5.1 实现窗口鼠标整体拖动 Private Su

60、b Bar_MouseDown(Button As Integer, Shift As Integer, X As Single, Y As Single)On Error Resume NextReleaseCapture SendMessage MyIM.hWnd, WM_NCLBUTTONDOWN, HTCAPTION, ByVal 0&End Sub5.2 “好友” , “用户” , “分组”按钮的整合实现菜单按钮Private Sub Command1_Click(Index As Integer)On Error Resume NextSelect Case IndexCase 0

61、 TreeView1.Visible = True OnLine.Visible = False OrgTree.Visible = FalseCase 2 If IniGRP = True Then MyIM.OrgTree.Visible = True MyIM.TreeView1.Visible = False MyIM.OnLine.Visible = False Exit SubCase 1If OnLined = True ThenMyIM.OrgTree.Visible = False MyIM.TreeView1.Visible = False MyIM.OnLine.Visi

62、ble = True Exit SubEnd IfEnd Sub5.2.1 “好友”按钮的树形控件结构Private Sub TreeView1_NodeClick(ByVal Node As MSComctlLib.Node)On Error Resume NextIf TreeView1.SelectedItem.Text And Right(TreeView1.SelectedItem.Key, 2) = () Then PopupMenu mnuBuddyEnd IfSleeping = 0End Sub5.2.2 “用户”按钮的树形控件结构Private Sub OrgTree_No

63、deClick(ByVal Node As MSComctlLib.Node)On Error Resume NextIf Right(OrgTree.SelectedItem.Key, 2) = | Then Me.PopupMenu mnuGROUP, 0End IfIf Right(OrgTree.SelectedItem.Key, 2) = () ThenDim yu As IntegerFor yu = 1 To TreeView1.Nodes.CountIf Right(TreeView1.Nodes(yu).Key, 2) = () And TreeView1.Nodes(yu)

64、.Text = OrgTree.SelectedItem.Text Then TreeView1.Nodes(yu).Selected = True Me.PopupMenu mnuBuddy, 0 Exit SubEnd IfNext yuEnd IfEnd Sub5.2.3 “分组”按钮的树形控件结构Private Sub OnLine_NodeClick(ByVal Node As MSComctlLib.Node)Me.PopupMenu AF, 0Sleeping = 0End Sub5.3 个人资料按钮Private Sub Image15_Click()On Error GoTo

65、 de frmSetInfo.Show Open App.Path & Info.dat For Random As gFileNum Len = Len(MyPersonalInfo) Get #gFileNum, 1, MyPersonalInfo Dim Sex As String Dim Temp As String If MyPersonalInfo.Sex = Male ThenfrmSetInfo.Option1.Value = True Else frmSetInfo.Option2.Value = False End If frmSetInfo.Text1.Text = Tr

66、im(MyPersonalInfo.Country) frmSetInfo.Text2.Text = Trim(MyPersonalInfo.BirthDay) frmSetInfo.Text3.Text = Trim(MyPersonalInfo.Age) frmSetInfo.Text4.Text = Trim(MyPersonalInfo.Webpage) Temp = Replace(Trim(MyPersonalInfo.About), /crlf, vbCrLf) frmSetInfo.RichTextBox1.Text = Temp Close #gFileNumde:err.ClearEnd Sub5.4 调出查找用户面板按钮Private Sub Label8_Click()FrmSearch1.ShowEnd Sub5.5 “添加好友”功能Private Sub AddFromList_Click()On Error Resume NextDim Temp As String, LNumber As Integer Temp = OnLine.SelectedIte

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