




已阅读5页,还剩19页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
局域网在线聊天系统目 录第1章 聊天室设计基础- 4 -1.1 聊天室目的- 4 -1.2 聊天室的背景和意义- 4 -1.3 聊天室的主要工作- 5 -1.4 聊天室术语定义- 5 -1.5 聊天室系统功能- 5 -第2章 聊天室系统设计- 6 -2.1 聊天室系统的功能要求- 6 -2.2 聊天室管理- 6 -2.3 聊天室登陆界面管理工程- 7 -2.4 聊天室新用户注册管理- 7 -2.5 聊天室客户端管理- 7 -2.6 聊天室服务器端管理- 8 -2.7 修改用户属性- 8 -2.8 添加模块- 8 -2.9 聊天室的其它管理- 9 -2.10 用户退出系统- 9 -2.11 数据库的连接- 9 -第3章 聊天室系统运行的环境- 10 -3.1硬件环境- 10 -3.2软件环境- 10 -3.3网络- 11 -第4章 聊天室系统的开发方法- 11 -4.1服务器程序实现过程- 11 -4.1.1.服务器程序部分- 11 -4.1.2.服务器程序中三个关键程序段- 12 -4.2客户端程序实现过程- 12 -4.2.1.客户程序部分- 13 -4.3 Winsock控件- 13 -4.4设计原理和工作原理- 13 -第5章 聊天室性能需求- 15 -第6章 聊天室的简单流程图- 15 -第7章 聊天室设计的窗体和程序- 15 -7.1登陆窗体及窗体代码- 15 -7.3客户端窗体及代码- 18 -7.4服务器窗体及代码- 20 -7.5模板代码- 23 -第8章 聊天室软件功能测试- 23 -8.1软件测试- 23 -8.2 测试结论与评价- 24 -第9章 结束语- 24 -第10章 致谢- 24 -第11章参考文献- 24 -【摘 要】随着计算机技术飞速发展的今天, 随着Internet的普及和发展, 人们的生活和工作也越来越离不开信息网络的支持, 而聊天室是人们最常见, 最直接的网上交流的方式。本文所介绍的网络聊天系统就是基于VB6.0应用程序开发设计的,其主要特性是能动态完成信息的传递,且具有高效的交互性,更有效的处理客户请求,且具有更简单,更方便的数据库访问方法,易于维护和更新。这种技术程序由VB程序和Windows 2000 Server组合而成,其运行所需环境及其工作流程和各个功能控件的工作原理将在本文依次介绍,并且文中提供了部分程序源代码。本课题通过Visual Basic 6.0所提供的Winsock Control,设计一个 Chat(闲聊)应用程序。我们通过Client及Server之间的文件传输,可以了解Chat程序的工作原理。【关键词】 Winsock,动态连接数据库,功能控件,注册,客户机/服务器。第1章 聊天室设计基础1.1 聊天室目的网上聊天系统是为人们进行交流和联系提供的一个平台。利用现代的网络资源优势和技术优势,通过提供完善的网上聊天系统的管理,以达到增进人们与人们之间的信息交流和沟通的目的,并以此加快人们的信息化建设。聊天室文档的目的是明确用户需求,在最终用户和开发者之间达成对软件产品要求的共用理解,作为项目开发的目标,为软件概要设计提供指导,并作为软件测试的依据。本聊天室文档的读者是最终用户代表、高级项目经理、项目经理、项目组成员、测试组成员、质量保证组成员。1.2 聊天室的背景和意义随着Internet的普及,越来越多的人们建立了自己的WWW网站,人们通过网站可以展示产品,发布最新动态,与用户进行交流和沟通,与合作伙伴建立联系,以及开展电子商务等。其中留言管理系统是构成网站的一个重要组成部分,它为人们的交流提供了一个平台。网站留言管理方式是基于ASP和脚本语言,将动态网页和数据库结合,通过应用程序来处理留言,这是目前较为流行的做法。Internet是目前世界上最大的计算机互联网络,它遍布全球,将世界各地各种规模的网络连接成一个整体。作为Internet上一种先进的,易于被人们所接受的信息检索手段,World Wide Web(简称WWW)发展十分迅速,成为目前世界上最大的信息资源宝库。据估计,目前Internet上已有上百万个Web站点,其内容范围跨越了教育科研、文化事业、金融、商业、新闻出版、娱乐、体育等各个领域,其用户群十分庞大,因此,建设一个好的Web站点对于一个机构的发展十分重要。近年来计算机技术的快速发展,特别是计算机网络的发展,越来越深刻的改变了人们生活的方方面面。使得人们能以更低廉的价格,开发出更方便、更实用的网络工具。各种在线服务系统,更是深刻的影响了人们的联系和交流方式,使得人们可以在远隔千里之遥随时通讯。过去的种种陈旧的联系方式,已经不能满足现代生活的需要。网上聊天系统作为一种方便消费者与人们之间联系的实用系统便应运而生。网上聊天系统是为人们进行交流和联系提供的一个平台。通过提供完善的网上聊天系统的管理,可以达到增进人们与消费者之间、消费者与消费者之间的交流和联系的目的。随着全球信息化进程的不断发展,网络也在飞速发展。出于高效、快速地处理各种事务的目的,越来越多的企业在其内部使用局域网来进行工作。在内部局域网的帮助下,企业得以简化信息流程,提高信息交换的速度,从而提高工作效率。然而,随着企业规模的扩大,业务量的增加,在局域网上运行的应用越来越多,如知识库、网络会议、数据库应用和数据的同步与备份等,这些应用对局域网的信息吞吐、处理能力的要求也越来越高。这些在企业内部原有局域网设计之初未曾考虑到的新情况的出现使得局域网不堪重负,容易发生信息阻塞,此时,局域网不但不能提高生产效率,反而成为企业发展的瓶颈。为了解决上述矛盾,人们提出了许多方法。提升网络带宽及增加服务器的吞吐能力是解决此矛盾的一种方法。然而,从企业运行的成本方面考虑,无论是单纯地提升网络带宽或增加服务器的吞吐能力都不能从根本上解决局域网资源紧张的问题,对旧有局域网的大规模硬件改造反而会增加企业的负担。我们在本设计中将讨论一种基于VB6.0的局域网通信方法。基于VB6.0的局域网通信软件可以为企业原有的局域网提供一种良好,安全,快速的通信机制。它可以在BSD、AIX、Solaris、MicrosoftWindows、MACOS及Linux等多种操作系统上实现,并且它的实现无需对企业原有的局域网硬件进行任何改动,具有实现成本低廉的优点,它的使用能有效地降低局域网通信负荷,提高局域网的使用效率,可以很好地解决企业内部局域网的各种通信需求。基于VB6.0的局域网聊天室是此类局域网通信软件的具体实例之一,它很好地诠释了VB6.0通信的原理,并且在企业内部通信、教学、讨论等应用中都具有一定的实用价值。它具有信息收发速度快,保密性好,占用网络带宽资源低,占用服务器吞吐能力低,易于编程实现等优点。基于VB6.0的局域网通信软件应用范围广阔,不但可以处理传统的通信需求,而且也能适应新型的网络应用,如即时通讯,网络教育,数据影音传输等,拥有广泛的应用前景。1.3 聊天室的主要工作 本文的主要工作是通过Windows 2000 Server软件开发平台来设计基于VB6.0的局域网聊天系统软件客户端部分。1.阐述本软件的功能、特点及使用方法。2.阐述开发本软件所用的相关技术。3.具体分析本软件客户端的各个模块的功能及实现方法。4.阐述本软件的设计思想及方法。1.4 聊天室术语定义表一: 术语定义序号术语或缩写定 义1.注册用户被写入才能有权限,才能被识别。2.删除除去不存在的用户信息。3.查询对某些对象进行查找。4.绑定对端口号进行枷锁防止被改动。5.退出实现对界面的关闭。6.群发信息服务一对多的发送(服务器到客户端)。7.用户表用来存储纪录所有用户(客户端)所有数据信息。1.5 聊天室系统功能表二: 系统功能描述编号功能名称功能描述 1管理用户信息对用户信息进行添加删除。 2群发信息服务器对指定的所有用户发送信息。 3 用户注册对用户实现合法登陆。 5聊天室登陆对所有用户实现登陆管理。 6修改用户修改用户相关信息。 7身份验证对登陆密码和用户名验证。 8添加进用户对登陆用户添加。 9添加模板向系统中添加用户自定义的模板 10删除模板向系统中删除用户自定义的模板 11用户退出系统在用户退出系统时做相应的操作第2章 聊天室系统设计2.1 聊天室系统的功能要求本项目的设计目标为一个高性能的,易于使用的,面向企业内部通信需求的局域网即时信息软件。它应具有如下特征: 1.具有高性能,可同时处理多个连接请求。2.具有高度可定制性,客户可根据不同的具体需求方便地更改软件的特性。3.具有一定的容错性能。当客户端连接到已启动的服务器,客户端用户注册或登录时,客户端输入的内容通过服务器端与数据库连接;客户端进入聊天室聊天时,服务器端与客户端进行数据交互并实现远程监控。最终的软件产品应具有如下功能:客户端与服务器端的功能独立,可独立运行在不同的计算机上或运行在同一台计算机上,具有最大的灵活性。客户端易于使用。服务器端运行稳定,具有可管理性,并具有一定的容错性能。客户端与服务器端可运行在多种硬件平台,具有良好的兼容性能。客户端:(1)能够随时改变自己的昵称。(2)能够自动更新其他用户的名单。(3)选择特定用户并与其交谈。(4)随时获得服务器端的当时时间。服务器端:(1)能够实现向所有用户作系统广播。(2)能够记录所有客户的动作及状态。(3)服务器使用者可以向特定多数人发消息。2.2 聊天室管理功能描述:用户打开聊天工具的主界面,填写相应的用户信息、点击登陆、进入聊天室。选择聊天室的相关功能进行操作。若用户选择退出,则关闭主界面操作规程描述:从主界面填写用户的“用户名”、“用户密码、点击“登陆”进入聊天界面。如果是新用户,则需先点击“新用户注册”,进入“注册”界面。按照一定的要求进行注册。若要退出主界面,点击“返回”。处理过程描述若用户点击“返回”,退出当前操作;若用户点击其它按钮则调用相关的功能操作。2.3 聊天室登陆界面管理工程 功能描述:通过打开聊天登陆工具,可以对界面上的相关信息进行操作。如“填写用户信息”、登陆”、“退出”、“新用户注册”。操作规程描述:在界面上的“用户名”一栏填写所要登陆的用户名,在“用户密码”区域输入相应的信息,点击“登陆”进入聊天界面,如果“密码”错误,则需重新“登陆”。在 “登 陆”超过三次,三秒退出!新用户可以通过“新用户注册”后进行“登陆”。若退出点击 “返回”则退出登陆界面。处理过程描述若用户点击“返回”,返回调用模块;若用户点击其它按钮则调用相关的功能模块。2.4 聊天室新用户注册管理功能描述: 新用户可以通过点击“新用户注册”,跳入注册界面,根据提示填写相关注册信息。处理过程描述点击进入“新用户注册”,进入“注册”界面。通过与数据库连接,把客户端的注册信息发送到服务器端,服务器根据客户端发送的注册信息返回给用户端一个注册号,用户根据注册申请到的帐号,退出“注册”界面,返回“登陆”进行登陆。2.5 聊天室客户端管理功能描述:在客户端“输入对方的服务器IP地址”或者输入本地的IP“”,和连接端口号。点击“确定”按钮连接成功后进行聊天。操作规程描述:先输入服务器的IP端口号和连接的端口号,点击“确定”按钮,显示连接成功后,在“请输入发送内容”中输入所需信息,点击“发送”。若要退出,点击“退出”按钮。处理过程描述若用户在“请输入发送内容”中输入信息,则重复以上步骤;若用户点击“退出”,退出聊天界面。2.6 聊天室服务器端管理功能描述:接收客户端发来的信息,在“发送对象”中选择要发送的用户名,在“请输入发送内容”中输入信息,点击“发送”,也可以点击“全部”对所 有用户进行群发。操作规程描述:服务器端在接收到用户发送来的信息后,可以添加用户,在“请输入发送内容”中输入信息,点击“发送”,可以选择发送给一个用户,也可以选择发送所有用户。若要退出,请点击“退出”按钮。处理过程描述若用户在要回复信息,在“请输入发送内容”中输入信息,重复以上步骤;若用户点击“退出”,退出聊天界面。2.7 修改用户属性功能描述:对服务器上某一用户信息的属性,如:用户名、年龄等进行修改。服务器更新数据库。操作规程描述:用户在点击“修改”按钮 。用户选择服务器上与之相关的信息,点击“修改属性”按钮,弹出“修改属性”对话框,其中列出所要修改的相关属性,用户在此编辑、修改,完成后点击“确定”。处理过程描述用户修改信息确定后将相关信息提交服务器,服务器更新数据库。2.8 添加模块功能描述:在所运行的窗体下添加模,作为公用的调用对象。操作规程描述:在VB“工程” 的窗体下,右击在出现的下拉菜单中先添加模,然后在根据需求,输入所要公用的信息。2.9 聊天室的其它管理功能描述:根据用户选择调用相应模块或返回登陆界面。操作规程描述:用户在“登陆”界面输入相关信息进入此界面。若用户点击“修改”或 “注册”,则进入相关界面;若用户点击返回,则返回“登陆”界面。处理过程描述若用户点击“修改”,调用“修改属性”功能模块;若用户点击“注册”,调用“注册属性”功能模块;若用户点击“返回”,返回登陆界面。2.10 用户退出系统功能描述:用户退出系统,若有作业正在进行,而用户强行退出系统,将终止该客户端与服务器的所有连接。操作规程描述:用户在聊天界面点击“退出”,客户端与服务器断开连接。2.11 数据库的连接功能描述: 在记录用户表信息和聊天记录信息时,可以查询和保存信息。操作规程描述:启动数据库连接,打开SQL企业管理服务器,建一新数据库表,在新建数据库表中添加用户表,如用户姓名、年龄等,在添加聊天记录表中,如聊天日期、聊天对象等。通过服务器与数据库连接。表三: 用户数据表字段名称数据类型及长度允许为空中文说明备注UserIDvarchar(100)NO用户ID主键UserNamevarchar(100)NO用户姓名UserPassWordvarchar(100)NO登陆密码UserSexvarchar(4)NO用户性别第3章 聊天室系统运行的环境我们所设计的是一个面向企业内部通信需求的局域网即时信息软件,要在短时间内开发出来并且要满足客户要求,无论是硬件还是软件都要选择合适,要求如下:开发设备应该完备;开发机器的性能必须稳定;操作系统的选择必须适当;开发出的程序可以在尽可能多的平台上运行;要求运行机配置尽可能低档。对此,我们选择的硬件环境和软件环境如下:3.1硬件环境开发该系统应尽可能采用高档的硬件配制,因此,在应用时应采用更好的配置。服务器端: Pentium 4 1.6GHz在上处理器 256MB 以上内存 硬盘空间随客户资料数量增减客户端: PIII700M以上处理器 128MB 以上内存 硬盘空间随客户资料数量增减机器:至少两台机器以上,一台为客户机,另一台承担服务器的功能。3.2软件环境选择好的操作系统和好的编程语言是系统优劣的关键,我们要求系统在尽可能多的环境下运行,故选择WindowsXP平台,对于一些无法在98中运行的API函数,一律不采用,并采取优化的算法编写程序。因VB具有友好的集成开发界面、面向对象的可视化开发模式、良好的数据库及多媒体应用支持以及高效的软件开发与程序运行,功能更大,开发效率更高,不仅是网络环境下的优秀前端开发语言和工具,也是服务器端Web编程的优秀工具。服务器端:操作系统:Windows 2000 Server客户端:操作系统:Windows 98操作系统:Windows XP操作系统:Windows 2000 Professional操作系统:Windows 2000 Server操作系统:Microsoft SQL Server 2000需安装TCP/IP协议开发工具:VB6.0。网络环境:最好可连接Internet并获取必要信息。3.3网络图1:网络拓扑结构图系统采用C/S模式。管理和控制在服务器端进行,数据由客户端编码、加密后送到服务器,服务器将数据写入存储设备。第4章 聊天室系统的开发方法4.1服务器程序实现过程1.简化过程:设置连接所用的端口->;开始监听此端口->;接到请求后建立连接->;可以发送和接收数据->;不用了就关闭。2.详细工程:(1)设置好LocalPort属性(即你和客户端连接所用得端口)。(2)用Listen方法进入监听状态,等待客户端发连接请求。(3)当客户端发送了连接请求后,服务器端产生ConnectionRequest实践,该事件得到一个参数requestID。 (4)服务器端用Accept方法接受客户机的程序的requestID,此后,服务器端就可以用SendData方法发送数据了。(5)当服务器接收到客户端发来的数据时,产生DataArrival事件,在这个事件里,就可以用GetData方法接收数据了。(6)如果遇到Close事件,则Close方法会关闭TCP/IP连接,也就是断开连接了。4.1.1.服务器程序部分服务器程序启动时,先设置自己的本地端口,因为有些端口有其固定的作用,如80是WWW的端口,故尽可能选择不可能使用的端口,这里我选择了2000。将连接状态设置为假,然后开始进行侦听。当侦听到有计算机要求与服务器进行对话,就接受,并记录下客户机的地址、端口、客户起的慝名,将连接状态设置为真,将上述内容存入一个用户自定义的数组中,进行动态维护。用户自定义数据类型如下:Private Type ActiveUser ClientIP As String 记录客户的IP地址 ClientName As String 记录客户的匿名 ClientPort As Integer 记录当前会话的端口 ClientConnected As Boolean 客户连接状态,True表示已连接,False表示没有连接。End Type做完这些工作后,服务器再调入一个新控件,进行新的侦听,如此反复不断。如果有客户退出,则关闭相应的连接。注意不能在客户端关闭连接,否则会产生错误,只能由服务器关闭连接。服务器程序主要对象设置。4.1.2.服务器程序中三个关键程序段1.处理连接请求sckServer_ConnectionRequest 过程处理连接请求,当远程计算机要求连接时,服务器首先检查用户自定义数组中是否有空闲位置(因为在谈话中途,肯定会有人退出,所以会产生空闲位置),如果有则选择空闲位置给予要求连接的客户,否则将数组维数加一,将之给予请求连接的远程节点。错误处理主要是忽略两个或两个以上的客户同时要求连接时产生的地址冲突现象。2.处理处于连接状态的用户发送来的信息sckServer_DataArrival 过程处理客户端传来的数据。当有数据发送过来后,服务器首先接收数据,调用自定义过程Handle Other Message 检查是谈话内容还是其它信息,如果是其它信息,则在Handle Other Message中进行处理,否则在本过程中进行处理。3.关闭客户连接 sckServer_Close 过程关闭与客户的连接, 删除控件, 收回系统资源, 将 该位置的连接状态设置为假, 以便有用户请求连接时继续使用。 它一般由Handle Other Message 过程调用 4.2客户端程序实现过程1.简化过程:设置服务器地址(要连接的地址)->设置连接是所用到的端口->发送连接请求->建立连接成功->可以发送和接收数据->不用了就关闭2.详细过程: (1)设置Remotehost属性(要连接的服务器地址)(2)设置RemotePort属性(连接时所使用的端口)(3)用Connect方法向服务器发送连接请求(4)服务器接受请求后,客户端产生Connect事件,就可以用SendData方法发送数据了。(5)当接收到服务端发来的数据时,产生DataArrival事件,该事件中用GetData方法接收数据。(6)如果接受到Close事件,则用Close方法关闭连接。4.2.1.客户程序部分客户程序启动时首先设置服务器的地址及端口,这里我直接使用了“”, 这是我的服务器地址, 可以在Form _load 过程中设置你自己的服务器地址, 也可在程序开始时让用户输入服务器地址以增加灵活性。 时钟控件用以 与远程节点进行自动连接。 类中的变量cmdExitClick 用来记录用户是否按了退出按钮, 如果是按了退 出按钮则为真。 当用户选择了系统的窗体关闭菜单而没有按退出按钮时将会产生错 误, 因此用它来记录是如何退出的, 如果选择了系统的窗体关闭菜单, 则执行一次cmdExit_Click() 过程, 以确保无误。4.3 Winsock控件一个Winsock控件可以建立健与一个计算机的联接,服务器程序中首先设置一个Winsock控件,将其索引值设为0,以便在运行时动态增减元素,这样可以与多个计算机进行对话。由于Winsock 控件将数据首先送至缓冲区, 待缓冲区满才发送信息, 这显 然不能保证适时对话, 用Deviants 语句可确保Windows 将数据及时送出。 其中的 错误处理程序处理当远程计算机非正常关闭程序时产生的错误, 因为此时服务器并 不知道它已关闭, 仍然向它发送信息, 这样就会产生错误,导致服务程序关闭, 中断整个谈话。 处理方法只是简单地关闭掉该连接即可。4.4设计原理和工作原理计算机网络是由一系列网络通信协议组成的,其中的核心协议是传输层的TCP/IP和UDP协议。TCP是面向连接的,通信双方保持一条通路,比如目前的电话线,使用telnet登录BBS,用的就是TCP协议;UDP是无连接的,通信双方都不保持对方的状态,浏览器访问Internet时使用的HTTP协议就是基于UDP协议的。TCP和UDP协议都非常复杂,尤其是TCP协议,为了保证网络传输的正确性和有效性,必须进行一系列复杂的纠错和排序等处理。UDP和TCP都是基于TCP/IP体系结构的协议。UDP是一种面向无连接、不可靠的协议,在传输前不需要建立连接。远程主机接到UDP数据报后,不需要给出任何应答。它传送的数据包是独立的,前后无任何顺序关系。TCP则是提供面向连接、可靠的服务,在传送数据前两台主机需要进行“三次握手”。在建立连接之后才能传送数据,TCP提供可靠服务,因此不可避免地增加了一些开销,如应答、流量控制、定时以及连接管理等。虽然UDP协议在可靠性方面不如TCP协议,但效率却比TCP高,当每次传送的数据量很少而且网络质量较高时,UDP也同样可以达到实用的可靠性要求。在Internet(广域网)和Intranet(局域网)上的通信程序一般都是以服务器提供服务端连接响应,使用者通过客户端程序登录到服务器,就可以与登录在同一服务器上的用户交谈,这是一个面向连接的通信过程。因此,程序要在TCP/IP环境下,实现服务器端和客户端两部分程序(Client和Server)。在TCP/IP网络应用中,通信的两个进程相互作用的主要模式是客户机/服务器模式,即客户端向服务器发出请求,服务器接收到请求后提供相应的服务。客户机/服务器模式的建立基于以下两点:首先,建立网络的起因是网络中软、硬件资源、运算能力和信息不均等,需要共享,从而造就拥有众多资源的主机提供服务,资源较少的客户请求服务这一非对等作用。其次,网络之间进程通信完全是异步的,相互通信的进程间既不存在父子关系,又不共享内存缓冲区,因此需要一种机制为希望通信的进程间建立一种联系,为二者的数据交换提供同步,这就是基于客户机/服务器模式的TCP/IP。客户机/服务器模式在操作过程中采取的是主动请求方式:1首先服务器方要启动,并根据请求提供相应服务:2打开一个通信通道并告知本地主机,它愿意在某一公认地址端口上(周知口,如http为80)接受客户请求。3等待客户请求到达该端口。接收到重复服务请求,处理该请求并发送应答信号。接收并发服务请求,要激活新进程来处理这个客户请求。新进程处理此客户请求,并不需要对其他请求做出应答。服务完成后,关闭此新进程与客户的通信链路,并终止。4返回第二步,等待另外的客户请求。5关闭服务器。客户方:1打开一个通信通道,并连接到服务器所在主机的特定端口。2向服务器发出服务请求报文,等待并接收应答;继续提出请求。3请求结束后关闭通信通道并终止。4从上面的描述过程可知。 5客户与服务器进程的作用是非对称的,因此编码不同。6服务进程一般是先于客户请求启动的,只要系统运行,该进程一直存在,直到正常终止或者强迫终止。7其中所用到的一些关键词:建立服务器 绑定地址(bind)监听连接请求 接受连接请求(accept)接收数据(receive)发送数据(send)关闭连接(close connect)请求连接(connect)发送数据(send) 建立用户端接收数据(receive )关闭连接(close connect)第5章 聊天室性能需求包括可靠性、易用性、效率、可维护性、可移植性/兼容性、安全和保密性等。数据精确度:例如,数据内部精度,外部显示精度;时间特性要求,例如:系统响应时间、界面更新处理时间、数据转换与传输时间。第6章 聊天室的简单流程图聊天室项目设计聊天室系统设计聊天室详细设计聊天室项目软件测试 图2:聊天室项目设计工作流程图第7章 聊天室设计的窗体和程序7.1登陆窗体及窗体代码图3:客户登录界面Option ExplicitDim sum As IntegerPrivate Sub Command1_Click()If Combo1.Text = 412308561 And Text2.Text = 111 Then strname = Combo1.Text Me.Hide frmclient.Show Winsock1.Protocol = sckTCPProtocol Winsock1.RemoteHost = Winsock1.RemotePort = 2000 Winsock1.ConnectElseIf Combo1.Text = 405163307 And Text2.Text = 112 Then strname = Combo1.Text Me.Hide frmclient.Show Winsock1.Protocol = sckTCPProtocol Winsock1.RemoteHost = Winsock1.RemotePort = 2001 Winsock1.ConnectElseIf Combo1.Text = 123456 And Text2.Text = 113 Then strname = Combo1.Text Me.Hide frmclient.Show Winsock1.Protocol = sckTCPProtocolWinsock1.RemoteHost = Winsock1.RemotePort = 2002 Winsock1.Connect End If sum = sum + 1 If sum 3 Then MsgBox 超过三次,退出! End End IfEnd SubPrivate Sub Command2_Click() EndEnd SubPrivate Sub Command3_Click()frmzhuce.Show frmQQ.Visible = FalseEnd SubPrivate Sub Form_Load() Call center(Me) sum = 0End Sub7.2注册窗体及代码图4:客户注册界面Option ExplicitDim con As New ADODB.ConnectionDim rst As New ADODB.RecordsetPrivate Function Res(sql As String)If rst.State = adStateOpen Then rst.CloseEnd Ifrst.CursorLocation = adUseClientrst.CursorType = adOpenDynamicrst.Open sql, con, adOpenDynamic, adLockOptimisticEnd FunctionPrivate Sub Command1_Click()Dim strAdd As StringstrAdd = insert into usertable values( & Trim(Text1.Text) & , & Trim(Text2.Text) & , & Trim(Text1.Text) & , & Trim(Text1.Text) & )Res (strAdd)Res (select * from usertable)If Text1.Text And Text2.Text Then strname = Text1.Text MsgBox 注册成功! End If frmQQ.Show Unload MeEnd SubPrivate Sub Command2_Click() EndEnd SubPrivate Sub Command3_Click()Dim strupdata As Stringstrupdata = updata usertable set userpassword=( & Trim(Text2.Text) & ) where usernameID=( & Trim(Text1.Text) & Res (strupdata)Res (select * from usertable)End SubPrivate Sub Form_Load()Call center(Me)Combo1.AddItem 男Combo1.AddItem 女Dim strcon As Stringstrcon = Provider=SQLOLEDB.1;PersistSecurity Info=False;User ID=sa;Initial Catalog=lvwenwei;Data Source=.con.Open strconRes (select * from usertable)End Sub7.3客户端窗体及代码图5:客户聊天界面Dim strSendMsg As String 保存服务端要发送的文本内容Dim strShowName As String 保存客户端传过来的姓名Dim strShow As String 保存客户端传过来的文本内容简介Dim intTemp As Integer 用0和1值控制是否连上服务端时,服务端发送过来的已连接到服务器是否需要在其中提取名字Private Sub Command1_Click() 发送文本strSendMsg = strName & + & Trim(Text2.Text)Winsock1.SendData strSendMsg 将数据发送给远程计算机Text2.Text = End SubPrivate Sub Command2_Click()EndEnd SubPrivate Sub Command3_Click() 设置服务器IP地址与端口号On Error GoTo A:Winsock1.RemoteHost = Trim(Text3.Text) 设置服务器IP地址Winsock1.RemotePort = Trim(Text4.Text) 设置服务器端口号Winsock1.ConnectintTemp = 1 连上服务端时,服务端发送过来的已连接到服务器是不需要在其中提取名字Command1.Enabled = TrueExit SubA:MsgBox 连接错误,请检查服务器IP地址与端口号是否输入正确!, vbOKOnly + vbInformation, 错误Text3.Text = Text4.Text = Text3.SetFocusEnd SubPrivate Sub Form_Load()Text1.Locked = TrueCommand1.Enabled = FalseEnd Sub当新数据到达时触发DataArrival事件Private Sub Winsock1_DataArrival(ByVal bytesTotal As Long)Dim strSaveData As String 将保存到达数据 Winsock1.GetData strSaveData 将到达的数据保存到变量strSaveData中 如果不需要提取名字,就直接显示在显示区域 If intTemp = 1 Then Text1.Text = strSaveData intTemp = 0 Exit Sub End If 如果数据来自服务端,也不需提取名字 If InStr(1, strSaveData, :) = 7 Then GoTo A: End If strShowName = Mid(strSaveData, 1, InStr(1, strSaveData, +) - 1) strShow = Mid(strSaveData, InStr(1, strSaveData, +) + 1) If Text1.Text = Then Text1.Text = strShowName & : & strShow Else Text1.Text = Text1.Text & Chr$(13) & Chr$(10) & strShowName & : & strShow End If Exit Sub如果数据来自服务端,也不需提取名字A: If Text1.Text = Then Text1.Text = strSaveData Else Text1.Text = Text1.Text & Chr$(13) & Chr$(10) & strSaveData End IfEnd Sub完成一个发送操作时触发SendComplete事件Private Sub Winsock1_SendComplete() strShowName = Mid(strSendMsg, 1, InStr(1, strSendMsg, +) - 1) strShow = Mid(strSendMsg, InStr(1, strSendMsg, +) + 1) If Text1.Text = Then Text1.Text = strShowName & : & strShow Else Text1.Text = Text1.Text & Chr$(13) & Chr$(10) & strShowName & : & strShow End IfEnd Sub7.4服务器窗体及代码 图5:服务器窗体界面Dim strSendMsg As String 保存服务端要发送的文本内容Dim strShowName As String 保存客户端传过来的姓名Dim strShow As String 保存客户端传过来的文本内容简介Private intMax As Long 用做增加控件的索引值Dim intTemp As Integer 用0和1值控制是否将向其他客户端转发的数据,显示到服务器端Dim intTemp2 As Integer 用0和1值控制是否将客户端第一次连接上服务器时在客户端显示的“已连接到服务器” 文本也显示在服务器上Private Sub Check1_Click()If Check1.Value = 1 Then Combo1.Enabled = FalseElseIf Check1.Value = 0 Then Combo1.Enabled = TrueEnd IfEnd SubPrivate Sub Command1_Click() 发送文本 strSendMsg = Text2.Text intTemp = 0 每次点击发送按钮都将使服务端自己也能看到发送的文本 intTemp2 = 0 Text2.Text = If Check1.Value = 0 Then Winsock1(Combo1.ListIndex).SendData 来自服务器端: & strSendMsg 将数据发送给远程计算机ElseIf Check1.Value = 1 Then For i = 0 To Combo1.ListCount - 1 Win
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 商业综合体物业公司员工劳动纪律与职业素养协议
- 网络主播签约经纪公司服务协议模板
- 离婚协议书中财产分割与子女监护权具体规定
- 节能减排物业公司员工劳务合同及环保指标达成协议
- 玫瑰精油神经酸胶囊产品研发与知识产权保护合同
- 贵州省黔东南州2021-2022学年九年级上学期期末文化水平模拟测试道德与法治试卷
- 《公共关系原理与实务》 第四版 练习与答案 朱崇娴 - 第1-5章
- 网络强国思想课件
- 朗读者比赛课件
- 抗菌技术测试题及答案大全
- 2025年河南省(安阳市)事业单位招聘联考内黄县(综合类)岗位考察考试参考试题及答案解析
- 2025年中组部机关公开遴选公务员面试模拟题集
- 研发中心资产管理办法
- 2025年教师时事政治热点题库及完整答案
- 2025至2030中国电子束晶圆检查系统行业项目调研及市场前景预测评估报告
- 贵州省榕江县2025年上半年事业单位公开遴选试题含答案分析
- 第2课《中国人首次进入自己的空间站》课件
- 22S803 圆形钢筋混凝土蓄水池
- 《中华人民共和国职业分类大典》电子版
- 天文地理知识竞赛题库及答案
- 行业标准:TSG T7007-2016 电梯型式试验规则
评论
0/150
提交评论