




已阅读5页,还剩43页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1,-,VB网络程序设计,-,2,1网络聊天程序任务1.1任务描述VB提供了一系列的网络编程控件,利用它们,网络编程将成为一件快乐而简单的工作。VB网络控件主要有三种:(1)Winsok控件主要用于编制基于TCP/IP或UDP协议的网络应用程序。(2)InternetTransfer控件主要以来传输文件,执行FTP命令以及登录服务器等。(3)WebBrowser用于创建浏览器本节先介绍Winsok控件。,-,3,在网络编程中最常用的方案是客户机/服务器模式(Client/Server,简称C/S)。这种模式包含客户机和服务器两类应用程序。其中客户应用程序向服务器请求服务,而服务程序通常在一个众所周知的地址侦听对服务的请求,也就是说,服务进程一直处于休眠状态,直到一个客户提出了连接请求。此时,服务持续将被唤醒,并对客户的请求作出适当的反应。,-,4,聊天服务程序:由客户端和服务端两个程序组成,采用Winsok控件开发。这两个程序可以在同一台计算机上运行,也可以在网络上不同的计算机上运行。整个系统的运行机制是:第一步:建立连接主要过程是:由客户端程序向服务端程序发出连接请求,服务端程序收到并接受连接请求,至此客户机与服务器创建了数据交流通道。第二步:开始聊天主要过程是:在客户机的“发送的信息”文本框中输入文字时,服务器端的“收到的信息”文本框中就会实时地显示相同的文字,反之亦然。,-,5,1.Winsock控件主要用来编制TCP/IP或协议的通话程序。答案:UDP2.在网络编程中最常用的方案是。答案:客户机/服务器程序(Client/Server),P215习题一、填空题,-,6,P215习题三、问答题2.简述网络聊天程序的运行过程。答:网络聊天程序的运行过程是:第一步:建立连接主要过程是:由客户端程序向服务端程序发出连接请求,服务端程序收到并接受连接请求,至此客户机与服务器创建了数据交流通道。第二步:开始聊天主要过程是:在客户机的“发送的信息”文本框中输入文字时,服务器端的“收到的信息”文本框中就会实时地显示相同的文字,反之亦然。,-,7,1.2.服务器的界面设计1.创建一个“标准EXE”工程,选中“工程”菜单的“部件”,在控件中找到MicrosoftWinsockControl并将其选中。2.将Form1的名称改为frmSvr,并在其中添加两个命令按钮(Command1的Caption属性为“退出”,Command2的Caption属性为“发送”)。3.在窗体是添加三个TextBox控件,其名称分别为txtServerIP,txtSend和txtReceive。4.在窗体上添加一个Winsock控件,将其Protocol(协议)属性设置为0(即sckTCPProtocol)。,-,8,1.3服务器程序代码设计PrivateSubForm_Load()设置侦听端口WinsockServer.LocalPort=10001读取服务器的IP地址TxtServerIP.Text=WinsockServer.LocalIP开始侦听WinsockServer.ListenEndSubPrivateSubCommand1_Click()点击“退出”按钮后关闭应用程序UnloadMeEndSub,-,9,1.3服务器程序代码设计PrivateSubCommand2_Click()只要txtSend文本框的内容写好以后就由WinsockServer控件发送WinsockServer.SendDataTxtSend.TextEndSubPrivateSubWinsockServer_ConnectionRequest(ByValrequestIDAsLong)当收到连接请求时,Winsock处于侦听状态此时应该使用Close方法关闭Winsock,然后使用Accept方法接受连接请求WinsockServer.CloseWinsockServer.AcceptrequestIDEndSub,-,10,1.3服务器程序代码设计PrivateSubWinsockServer_DataArrival(ByValBytesTotalAsLong)当客户端有信息发送来时,利用WinsockServer控件的GatData方法读取数据并将其显示在txtReceive文本框中DimMyStrAsStringWinsockServer.GetDataMyStrTxtReceive.Text=MyStrEndSub,-,11,1.4客户机程序界面设计1.创建一个新的“标准EXE”工程,并添加Winsock控件。2.将Form1的名称改为frmClt,并在其中添加两个命令按钮(Command1的Caption属性为“退出”,Command2的Caption属性为“连接服务器”,Command3的Caption属性为“发送”)。3.在窗体是添加四个TextBox控件,其名称分别为txtClientIP,txtServerIP,txtSend和txtReceive。4.在窗体上添加一个Winsock控件,将其Protocol(协议)属性设置为0(即sckTCPProtocol)。,-,12,1.4.客户机的程序代码设计PrivateSubForm_Load()设置聊天服务器的侦听端口WinsockClient.RemotePort=10001读取本机的IP地址txtClientIP.Text=WinsockClient.LocalIPEndSubPrivateSubCommand1_Click()点击“退出”按钮后关闭应用程序UnloadMeEndSub,-,13,1.4.客户机的程序代码设计PrivateSubCommand2_Click()根据txtServerIP文本框中输入的服务器IP,连接聊天服务器WinsockClient.RemoteHost=txtServerIP.TextWinsockClient.ConnectEndSubPrivateSubCommand3_Click()输入txtSend文本框的内容后由WinsockServer控件发送WinsockClient.SendDatatxtSend.TextEndSub,-,14,1.4.客户机的程序代码设计PrivateSubWinsockClient_Connect()如果与服务器连接成功,则向用户提供下列信息MsgBox你成功地与聊天服务器进行了连接,vbInformationEndSubPrivateSubWinsockClient_DataArrival(ByValBytesTotalAsLong)当服务器有信息发送来时,利用WinsockClient控件的GatData方法读取数据并将其显示在txtReceive文本框中DimMyStrAsStringWinsockClient.GetDataMyStrtxtReceive.Text=MyStrEndSub,-,15,演示聊天程序,-,16,2Winsock控件及网络应用程序设计基础Winsock控件是建立在TCP协议的基础上,能够完成远程计算机间的通信,用途非常广泛。即使我们对TCP/IP,TCP这些知识不太熟悉,只要理解了网络应用程序设计的一般原理,并对Winsock的主要属性、方法和事件有所了解,也可以在很短时间内创建一个简单的网络通信程序。,-,17,2.1Winsock控件的主要属性Winsock控件主要有八个属性:1.BytesReceived属性:返回接收到的数据。通常用GetData方法来获取这些数据。2.LocalHostName属性:返回本地计算机的名称。3.LocalIP属性:返回本地计算机的IP地址。4.LocalPost属性:返回或者设置所用的端口,如果设置为0,则使用随机端口。5.Protocol属性:返回或设置Winsock所用的协议(TCP或UDP)。6.RemoteHostName属性,返回或设置远程计算机的名称。7.RemoteHostIP属性,返回远程计算机的IP地址。State属性:返回Winsock控件的当前状态。,-,18,Winsock控件的State属性,-,19,3.如果希望得到本地计算机的IP地址,可以使用Winsock控件的属性。答案:LocalIP4.Winsock控件的BytesReceived属性返回接收到的数据,通常使用方法来获取这些数据。答案:GetData3.如果Winsock1.LocaPort=0,那么应用程序将。答案:使用随机端口,P215习题二、填空题,-,20,2.2Winsock控件的主要方法Winsock控件的方法主要有六个:1.Listen方法语法:Winsock对象.Listen作用:使服务器处于侦听状态,等待客户访问。2.Connect方法语法:Winsock对象.Connect远程主机IP,远程端口作用:用于向远程主机发出连接请求。3.Accept方法语法:Winsock对象.AcceptRequestID作用:用于接受一个连接请求,其中RequestID是客户机发来的请求信号,-,21,2.2Winsock控件的主要方法Winsock控件的方法主要有六个:4.SendData方法语法:Winsock对象.SendData数据作用:用于发送数据5.GetData方法语法:Winsock对象.GetData变量数据类型,最大长度作用:用来获得接收到的数据6.Clcse方法语法:Winsock对象.Close作用:关闭当前连接,-,22,5.Winsock1.Listen语句的含义是。答案:LocalIP使服务器处于侦听状态,等待客户访问。,P215习题二、填空题,-,23,2.3Winsock控件的主要事件Winsock控件的事件主要有两个:1.DataArrival事件:一旦数据到达,就会触发该事件。它通常与GetData方法一起使用,通过GetData方法获得新到达的数据。2.ConnectionRequest事件:当客户机使用Connect方法请求连接时触发该事件,它通常与Accept方法一起使用,用来接受客户机的连接请求。,-,24,1.一旦数据到达,将首先触发Winsock控件的()。A.DataArrival事件B.ConnectionRequest事件C.DataSand事件D.DataGet事件答案:B,P214习题一、单项选择题,-,25,2.要发送数据,通常使用Winsock控件的()。A.SendData方法B.Listen方法C.Accept方法D.GetData方法答案:A,P214习题一、单项选择题,-,26,3.当Winsock控件处于关闭状态时,其State属性的值是()。A.1B.0C.2D.6答案:B,P214习题一、单项选择题,-,27,4.当Winsock控件的LocalPort属性的作用是()。A.仅返回所有端口B.仅设置所有端口C.返回或设置所有端口D.返回或设置IP地址答案:B,P214习题一、单项选择题,-,28,5.当使用SendData将数据发送到主机后时,将触发的Winsock控件的是()。A.SendProgressB.MouseDownC.ClickD.KeyPress答案:A,P214习题一、单项选择题,-,29,2.4网络应用程序设计基础1.基于Socket的通信过程Winsock控件是基于Socket接口(套接字)创建的。它是现在TCP/IP网络中最通用的API(应用程序接口),也是在Internet上进行应用程序开发最通用的API。WindowsSocket规范已成为Windows网络编程的标准。Socket在计算机中提供了一个通信端口,可以通过这个端口与任何一个也同样具有Socket接口的计算机进行通信。应用程序在网络上传输、接收的信息都通过这个Socket接口来实现。基于Socket的通信过程如下页图所示:,-,30,Socket,Socket,应用程序A,发送,发送,接收,接收,应用程序B,通信细节,利用Socket进行网络编程,只需对Socket接口进行数据的读写操作,根本不必关心两台计算机间的通信细节就能够完成数据的发送和接收工作。,-,31,利用Socket进行网络编程,只需对Socket接口进行数据的读写操作,根本不必关心两台计算机间的通信细节就能够完成数据的发送和接收工作。,P215习题三问答题1.简述基于Socket的通信过程。,-,32,2.基于Winsock控件的开发模式VB提供的Winsock控件正是基于Socket规范创建的。利用Winsock控件开发网络通信系统时,通常要涉及到服务器和客户机两类应用程序:(1)服务器程序的开发模式服务器程序必须设置好LocalPort属性,作为侦听端口。该值可设置成任何一个整数,只要其它应用程序没有使用过的值即可,单习惯上应大于1000。使用Listen方法使服务器进入侦听状态,等待客户机的连接请求。,-,33,2.基于Winsock控件的开发模式(1)服务器程序的开发模式客户机程序发出连接请求后,将触发服务器程序的ConnectionRequest事件,该事件得到一个参数RequestID。服务器程序使用Accept方法接受客户机程序的RequestID请求。至此,服务器程序就可以使用SendData方法向客户机发送数据了。当服务器接收到数据时,会产生DataArrival事件。在该事件中可使用GetData方法接收数据。,-,34,(2)客户机程序的开发模式首先设置好RemoteHost属性,用来指向运行服务器程序的远程计算机的的主机名或IP地址。设置RemotePort属性,用来指向服务器程序的侦听端口号。使用Connect方法向服务器提出连接请求。如果服务器接受了上述请求,客户机程序就会产生Connect事件,可以根据需要,在此事件中编写程序,比如使用MsgBox函数向用户提示“连接已成功”之类的信息。连接成功后,就可以根据需要使用SendData方法向服务器发送数据了。当客户机程序接收的数据时,就会产生DataArrival事件,可以用GetData方法接收数据。,-,35,3.简述基于Winsock控件的开发过程。答:1)服务器程序的开发模式服务器程序必须设置好LocalPort属性,作为侦听端口。使用Listen方法使服务器进入侦听状态,等待客户机的连接请求。客户机程序发出连接请求后,将触发服务器程序的ConnectionRequest事件,该事件得到一个参数RequestID。服务器程序使用Accept方法接受客户机程序的RequestID请求。至此,服务器程序就可以使用SendData方法向客户机发送数据了。当服务器接收到数据时,会产生DataArrival事件。在该事件中可使用GetData方法接收数据。,P215习题三、问答题,-,36,3.简述基于Winsock控件的开发过程。2)客户机程序的开发模式首先设置好RemoteHost属性,用来指向运行服务器程序的远程计算机的的主机名或IP地址。设置RemotePort属性,用来指向服务器程序的侦听端口号。使用Connect方法向服务器提出连接请求。如果服务器接受了上述请求,客户机程序就会产生Connect事件。连接成功后,就可以根据需要使用SendData方法向服务器发送数据了。当客户机程序接收的数据时,就会产生DataArrival事件,可以用GetData方法接收数据。,P215习题三、问答题,-,37,3其它网络应用程序设计3.1局域网中保证联网计算机时间同步当采用客户机/服务器模式在局域网上开发系统时,必须保证所有计算机的时钟时间一致。在就需要用到统一的时间,以便协调工作,最号的方法就是通过程序的方法,解决时钟同步的问题。,-,38,这是某一应用系统的网络拓补结构,我们可以采用Winsock控件解决众多客户机与数据服务器间的时间同步问题。,-,39,解决时钟同步的基本思路是:首先精确调整服务器的时钟,然后,当客户机启动时与服务器连接,并与服务器“对时”。这样,每当执行应用程序时,客户机就会与服务器时钟同步了。,-,40,4.如何保证局域网中联网的计算机同步运行?答:解决时钟同步的基本思路是:首先精确调整服务器的时钟,然后,当客户机启动时与服务器连接,并与服务器“对时”。这样,每当执行应用程序时,客户机就会与服务器时钟同步了。,P215习题三、问答题,-,41,1.客户机程序的主要代码(1)与服务器建立连接在客户机主窗体的Load事件中连接服务器程序,具体方法与聊天程序相同。PrivateSubForm_Load()设置聊天服务器的侦听端口WinsockClient.RemotePort=10001读取本机的IP地址txtClientIP.Text=WinsockClient.LocalIP根据txtServerIP文本框中输入的服务器IP,连接聊天服务器WinsockClient.RemoteHost=txtServerIP.TextWinsockClient.Connect如果与服务器连接成功,则向用户提供下列信息MsgBox你成功地与聊天服务器进行了连接,EndSub,-,42,(2)其它代码PrivateSubWinsockClient_DataArrival(ByValbytesTotal)当收到服务器发来的数据时,完成以下工作:(1)日期数据类型接收数据;(2)设置本机的系统日期定义一个日期类型数据变量DimMyDateAsDate以日期数据类型接受服务器日期数据WinsockClient.GetDataMyDate,VbDate使本机的系统日期等于服务器日期Date=MyDateEndSub,-,43,2.服务端程序主要代码PrivateSubWinsockServer_ConnectionRequest_(ByValRequestIDAsLong)当收到客户机的连接请求时,完成以下工作:(1)结束Winsock的侦听状态;(2)接受连接请求;(3)将服务器的系统日期发送给客户机WinsockServer.CloseWinsockServer.AcceptRequestID将系统当前的时间Date发送给提出请求的客户机WinsockServer.SendDateEndSub,-,44,3.2Web浏览器1.一个简单的浏览器应用程序示例(1)创建一个新的“标准EXE”工程。利用“工程”菜单的“部件”选项添加“WindowsInternetControls”以获得对WebBrowser控件的支持。(2)在Form1窗口上添加Text1、Command1和WebBrowser1等控件。(3)在Command1控件的Click事件中,添加如下代码:PrivateSubComman
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 早熟糜子品种创新创业项目商业计划书
- 坚果风味坚果脆片定制服务创新创业项目商业计划书
- 家庭健康监测数据分析平台创新创业项目商业计划书
- 海水养殖智能温控与通风系统创新创业项目商业计划书
- 水稻加工副产品膳食纤维创新创业项目商业计划书
- 工业生产线流程优化实施方案
- 建筑工程招投标流程标准详解
- 化工工艺设计师面试题及答案
- 2025-2030飞机燃油系统节能技术研发与产业化前景报告
- 2025-2030风电EPC总承包模式风险分担与合同条款优化报告
- 网络交友新时代课件
- 2025年乡村医生公共卫生服务专业知识题库及答案解析
- 2024年江南大学公开招聘辅导员笔试题含答案
- 议论文写作入门基础任务式课件2025-2026学年统编版高中语文必修上册
- 佛州驾照考试试题题库及答案
- 《人工神经网络理论及应用》课件-第8章 深度神经网络-卷积神经网络(下)
- 索佳全站仪SET230RK3使用说明书
- 甘草中药课件
- 2025贵州贵阳机场安检站安检员岗位实习人员招聘笔试历年参考题库附带答案详解
- 建设工地试验室日常质量监督计划
- 基本生活能力评估表BADL使用指南
评论
0/150
提交评论