VB网络程序设计.ppt

上传人:豆**** 文档编号:25037159 上传时间:2022-07-09 格式:PPT 页数:49 大小:375.50KB
返回 下载 相关 举报
VB网络程序设计.ppt_第1页
第1页 / 共49页
VB网络程序设计.ppt_第2页
第2页 / 共49页
点击查看更多>>
资源描述

《VB网络程序设计.ppt》由会员分享,可在线阅读,更多相关《VB网络程序设计.ppt(49页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。

1、2 1 网络聊天程序任务网络聊天程序任务 1.1 任务描述任务描述VB提供了一系列的网络编程控件,利用它们,网提供了一系列的网络编程控件,利用它们,网络编程将成为一件快乐而简单的工作。络编程将成为一件快乐而简单的工作。VB网络控件主要有三种:网络控件主要有三种:(1)Winsok控件控件 主要用于编制基于主要用于编制基于TCP/IP或或UDP协议的网络应用程序。协议的网络应用程序。(2)Internet Transfer控件控件 主要以来传输文件,主要以来传输文件,执行执行FTP命令以及登录服务器等。命令以及登录服务器等。(3)WebBrowser 用于创建浏览器用于创建浏览器 本节先介绍本节

2、先介绍Winsok控件。控件。 3 在网络编程中最常用的方案是客户机在网络编程中最常用的方案是客户机/ /服务器服务器模式(模式(Client/ServerClient/Server,简称,简称C/SC/S)。这种模式包)。这种模式包含客户机和服务器两类应用程序。其中客户应用含客户机和服务器两类应用程序。其中客户应用程序向服务器请求服务,而服务程序通常在一个程序向服务器请求服务,而服务程序通常在一个众所周知的地址侦听对服务的请求,也就是说,众所周知的地址侦听对服务的请求,也就是说,服务进程一直处于休眠状态,直到一个客户提出服务进程一直处于休眠状态,直到一个客户提出了连接请求。此时,服务持续将被

3、唤醒,并对客了连接请求。此时,服务持续将被唤醒,并对客户的请求作出适当的反应。户的请求作出适当的反应。4 聊天服务程序聊天服务程序:由客户端和服务端两个程序:由客户端和服务端两个程序组成,采用组成,采用WinsokWinsok控件开发。这两个程序可以在控件开发。这两个程序可以在同一台计算机上运行,也可以在网络上不同的计同一台计算机上运行,也可以在网络上不同的计算机上运行。整个系统的运行机制是:算机上运行。整个系统的运行机制是: 第一步:建立连接第一步:建立连接 主要过程是:由客户端程序向服务端程序发主要过程是:由客户端程序向服务端程序发出连接请求,服务端程序收到并接受连接请求,出连接请求,服务

4、端程序收到并接受连接请求,至此客户机与服务器创建了数据交流通道。至此客户机与服务器创建了数据交流通道。 第二步:开始聊天第二步:开始聊天 主要过程是:在客户机的主要过程是:在客户机的“发送的信息发送的信息”文文本框中输入文字时,服务器端的本框中输入文字时,服务器端的“收到的信息收到的信息”文本框中就会实时地显示相同的文字,反之亦然。文本框中就会实时地显示相同的文字,反之亦然。51. Winsock控件主要用来编制控件主要用来编制TCP/IP或或 协议的通话协议的通话程序。程序。答案:答案:UDP2. 在网络编程中最常用的方案是在网络编程中最常用的方案是 。答案:客户机答案:客户机/服务器程序(

5、服务器程序(Client/Server)6P215 P215 习题习题 三、问答题三、问答题2.2.简述网络聊天程序的运行过程。简述网络聊天程序的运行过程。答:网络聊天程序的运行过程是:答:网络聊天程序的运行过程是: 第一步:建立连接第一步:建立连接 主要过程是:由客户端程序向服务端程序发主要过程是:由客户端程序向服务端程序发出连接请求,服务端程序收到并接受连接请求,出连接请求,服务端程序收到并接受连接请求,至此客户机与服务器创建了数据交流通道。至此客户机与服务器创建了数据交流通道。 第二步:开始聊天第二步:开始聊天 主要过程是:在客户机的主要过程是:在客户机的“发送的信息发送的信息”文文本框

6、中输入文字时,服务器端的本框中输入文字时,服务器端的“收到的信息收到的信息”文本框中就会实时地显示相同的文字,反之亦然。文本框中就会实时地显示相同的文字,反之亦然。7 1.2. 1.2. 服务器的界面设计服务器的界面设计1.1.创建一个创建一个“标准标准 EXEEXE”工程,选中工程,选中“工程工程”菜单菜单的的“部件部件”,在控件中找到,在控件中找到Microsoft Winsock Microsoft Winsock ControlControl并将其选中。并将其选中。2.2.将将Form1Form1的名称改为的名称改为frmSvrfrmSvr,并在其中添加两个,并在其中添加两个命令按钮(

7、命令按钮(Command1Command1的的CaptionCaption属性为属性为“退出退出”,Command2Command2的的CaptionCaption属性为属性为“发送发送”)。)。3.3.在窗体是添加三个在窗体是添加三个TextBoxTextBox控件,其名称分别为控件,其名称分别为txtServerIPtxtServerIP,txtSendtxtSend和和txtReceivetxtReceive。4.4.在窗体上添加一个在窗体上添加一个WinsockWinsock控件,将其控件,将其ProtocolProtocol(协议)属性设置为(协议)属性设置为0 0(即(即sckTC

8、PProtocolsckTCPProtocol)。)。8 1.3 1.3 服务器程序代码设计服务器程序代码设计Private Sub Form_Load()Private Sub Form_Load() 设置侦听端口设置侦听端口 WinsockServer.LocalPort = 10001WinsockServer.LocalPort = 10001 读取服务器的读取服务器的IPIP地址地址 TxtServerIP.Text = WinsockServer.LocalIPTxtServerIP.Text = WinsockServer.LocalIP 开始侦听开始侦听 WinsockServ

9、er.ListenWinsockServer.ListenEnd SubEnd SubPrivate Sub Command1_Click()Private Sub Command1_Click() 点击点击“退出退出”按钮后关闭应用程序按钮后关闭应用程序 Unload MeUnload MeEnd SubEnd Sub9 1.3 1.3 服务器程序代码设计服务器程序代码设计Private Sub Command2_Click()Private Sub Command2_Click() 只要只要txtSendtxtSend文本框的内容写好以后就由文本框的内容写好以后就由WinsockServe

10、rWinsockServer控件发送控件发送 WinsockServer.SendData TxtSend.TextWinsockServer.SendData TxtSend.TextEnd SubEnd SubPrivate Sub WinsockServer_ConnectionRequest(ByVal requestID Private Sub WinsockServer_ConnectionRequest(ByVal requestID As Long)As Long) 当收到连接请求时,当收到连接请求时,WinsockWinsock处于侦听状态处于侦听状态 此时应该使用此时应该使

11、用CloseClose方法关闭方法关闭WinsockWinsock,然后使用,然后使用AcceptAccept方法接方法接受连接请求受连接请求 WinsockServer.CloseWinsockServer.Close WinsockServer.Accept requestID WinsockServer.Accept requestIDEnd Sub End Sub 10 1.3 1.3 服务器程序代码设计服务器程序代码设计Private Sub WinsockServer_DataArrival(ByVal Private Sub WinsockServer_DataArrival(B

12、yVal BytesTotal As Long)BytesTotal As Long) 当客户端有信息发送来时,利用当客户端有信息发送来时,利用WinsockServerWinsockServer控件控件的的GatDataGatData方法读取数据方法读取数据 并将其显示在并将其显示在txtReceivetxtReceive文本框中文本框中 Dim MyStr As StringDim MyStr As String WinsockServer.GetData MyStr WinsockServer.GetData MyStr TxtReceive.Text = MyStr TxtReceiv

13、e.Text = MyStrEnd SubEnd Sub11 1.4 1.4 客户机程序界面设计客户机程序界面设计1.1.创建一个新的创建一个新的“标准标准 EXEEXE”工程,并添加工程,并添加Winsock Winsock 控件。控件。2.2.将将Form1Form1的名称改为的名称改为frmCltfrmClt,并在其中添加两个,并在其中添加两个命令按钮(命令按钮(Command1Command1的的CaptionCaption属性为属性为“退出退出”, Command2Command2的的CaptionCaption属性为属性为“连接服务器连接服务器” ,Command3Command3

14、的的CaptionCaption属性为属性为“发送发送”)。)。3.3.在窗体是添加四个在窗体是添加四个TextBoxTextBox控件,其名称分别为控件,其名称分别为txtClientIPtxtClientIP,txtServerIPtxtServerIP,txtSendtxtSend和和txtReceivetxtReceive。4.4.在窗体上添加一个在窗体上添加一个WinsockWinsock控件,将其控件,将其ProtocolProtocol(协议)属性设置为(协议)属性设置为0 0(即(即sckTCPProtocolsckTCPProtocol)。)。12 1.4. 客户机的程序代码

15、设计客户机的程序代码设计Private Sub Form_Load() 设置聊天服务器的侦听端口设置聊天服务器的侦听端口 WinsockClient.RemotePort = 10001 读取本机的读取本机的IP地址地址 txtClientIP.Text = WinsockClient.LocalIPEnd SubPrivate Sub Command1_Click() 点击点击“退出退出”按钮后关闭应用程序按钮后关闭应用程序 Unload MeEnd Sub13 1.4. 客户机的程序代码设计客户机的程序代码设计Private Sub Command2_Click() 根据根据txtServ

16、erIP文本框中输入的服务器文本框中输入的服务器IP,连接聊,连接聊天服务器天服务器 WinsockClient.RemoteHost = txtServerIP.Text WinsockClient.ConnectEnd SubPrivate Sub Command3_Click() 输入输入txtSend文本框的内容后由文本框的内容后由WinsockServer控控件发送件发送 WinsockClient.SendData txtSend.TextEnd Sub14 1.4. 客户机的程序代码设计客户机的程序代码设计Private Sub WinsockClient_Connect() 如

17、果与服务器连接成功,则向用户提供下列信息如果与服务器连接成功,则向用户提供下列信息 M s g B o x 你 成 功 地 与 聊 天 服 务 器 进 行 了 连 接你 成 功 地 与 聊 天 服 务 器 进 行 了 连 接 , vbInformationEnd SubPrivate Sub WinsockClient_DataArrival(ByVal BytesTotal As Long) 当服务器有信息发送来时,利用当服务器有信息发送来时,利用WinsockClient控件的控件的GatData方法读取数据方法读取数据 并将其显示在并将其显示在txtReceive文本框中文本框中 Dim

18、 MyStr As String WinsockClient.GetData MyStr txtReceive.Text = MyStrEnd Sub15演示聊天程序演示聊天程序16 2 Winsock控件及网络应用程序设计基础控件及网络应用程序设计基础 Winsock控件是建立在控件是建立在TCP协议的基础上,能够完成协议的基础上,能够完成远程计算机间的通信,用途非常广泛。即使我们对远程计算机间的通信,用途非常广泛。即使我们对TCP/IP,TCP这些知识不太熟悉,只要理解了网络应这些知识不太熟悉,只要理解了网络应用程序设计的一般原理,并对用程序设计的一般原理,并对Winsock的主要属性、方

19、的主要属性、方法和事件有所了解,也可以在很短时间内创建一个简单法和事件有所了解,也可以在很短时间内创建一个简单的网络通信程序。的网络通信程序。17 2.1 Winsock控件的主要属性控件的主要属性Winsock控件主要有八个属性:控件主要有八个属性:1. BytesReceived属性:返回接收到的数据。通常用属性:返回接收到的数据。通常用GetData方法来获取这些数据。方法来获取这些数据。2. LocalHostName属性:返回本地计算机的名称。属性:返回本地计算机的名称。3. LocalIP属性:返回本地计算机的属性:返回本地计算机的IP地址。地址。4. LocalPost属性:返回

20、或者设置所用的端口,如果设置为属性:返回或者设置所用的端口,如果设置为0,则使用随机端口。则使用随机端口。5. Protocol属性:返回或设置属性:返回或设置Winsock所用的协议(所用的协议(TCP或或UDP)。)。6. RemoteHostName属性,返回或设置远程计算机的名称。属性,返回或设置远程计算机的名称。7. RemoteHostIP属性,返回远程计算机的属性,返回远程计算机的IP地址。地址。 State属性:返回属性:返回Winsock控件的当前状态。控件的当前状态。18符号常数符号常数值值含义含义sckClosed0关闭状态,缺省值关闭状态,缺省值sckOpen1打开状态

21、打开状态sckListening2侦听状态侦听状态sckConnectionPending3连接状态连接状态sckResolvingHost4解析主机解析主机sckHostResolved5以解析的主机以解析的主机sckConnecting6正在连接正在连接Sckconnected7已经连接已经连接sckClosing8客户端正在关闭连接客户端正在关闭连接sckErros9错误错误Winsock控件的控件的State属性属性193. 如果希望得到本地计算机的如果希望得到本地计算机的IP地址,可以使用地址,可以使用Winsock控件的控件的 属性。属性。答案:答案:LocalIP4. Winso

22、ck控件的控件的BytesReceived属性返回接收到的属性返回接收到的数据,通常使用数据,通常使用 方法来获取这些数据。方法来获取这些数据。答案:答案:GetData3. 如果如果Winsock1.LocaPort=0,那么应用程序那么应用程序将将 。答案:使用随机端口答案:使用随机端口20 2.2 Winsock 2.2 Winsock控件的主要方法控件的主要方法WinsockWinsock控件的方法主要有六个:控件的方法主要有六个:1. Listen1. Listen方法方法语法:语法: WinsockWinsock对象对象.Listen.Listen作用:使服务器处于侦听状态,等待客

23、户访问。作用:使服务器处于侦听状态,等待客户访问。2. Connect2. Connect方法方法语法:语法: WinsockWinsock对象对象.Connect.Connect远程主机远程主机IPIP,远,远程端口程端口 作用:用于向远程主机发出连接请求。作用:用于向远程主机发出连接请求。3. Accept3. Accept方法方法语法:语法: WinsockWinsock对象对象.Accept RequestID.Accept RequestID作用:用于接受一个连接请求,其中作用:用于接受一个连接请求,其中RequestIDRequestID是客户机发来的请求信号是客户机发来的请求信号

24、21 2.2 Winsock 2.2 Winsock控件的主要方法控件的主要方法WinsockWinsock控件的方法主要有六个:控件的方法主要有六个:4. SendData4. SendData方法方法语法:语法: WinsockWinsock对象对象.SendData .SendData 数据数据作用:用于发送数据作用:用于发送数据5. GetData5. GetData方法方法语法:语法: WinsockWinsock对象对象. GetData . GetData 变量变量 数据类型数据类型 ,最大长度最大长度 作用:用来获得接收到的数据作用:用来获得接收到的数据6. Clcse6. C

25、lcse方法方法语法:语法: WinsockWinsock对象对象.Close.Close作用:关闭当前连接作用:关闭当前连接225. Winsock1.Listen语句的含义是语句的含义是 。答案:答案:LocalIP使服务器处于侦听状态,等待客户访问。使服务器处于侦听状态,等待客户访问。23 2.3 Winsock 2.3 Winsock控件的主要事件控件的主要事件WinsockWinsock控件的事件主要有两个:控件的事件主要有两个:1.DataArrival1.DataArrival事件:一旦数据到达,就会触发事件:一旦数据到达,就会触发该事件。它通常与该事件。它通常与GetDataG

26、etData方法一起使用,通方法一起使用,通过过GetDataGetData方法获得新到达的数据。方法获得新到达的数据。2. ConnectionRequest2. ConnectionRequest事件:当客户机使用事件:当客户机使用ConnectConnect方法请求连接时触发该事件,它通常方法请求连接时触发该事件,它通常与与AcceptAccept方法一起使用,用来接受客户机的连方法一起使用,用来接受客户机的连接请求。接请求。241. 一旦数据到达,将首先触发一旦数据到达,将首先触发Winsock控件的控件的( )。)。A. DataArrival事件事件B. ConnectionReq

27、uest事件事件C. DataSand事件事件D. DataGet事件事件答案:答案:B252. 要发送数据,通常使用要发送数据,通常使用Winsock控件的(控件的( )。)。A. SendData方法方法B. Listen方法方法C. Accept方法方法D. GetData方法方法答案:答案:A263. 当当Winsock控件处于关闭状态时,其控件处于关闭状态时,其State属性的属性的值是(值是( )。)。A. 1B. 0C. 2D. 6答案:答案:B274. 当当Winsock控件的控件的LocalPort属性的作用是(属性的作用是( )。)。A. 仅返回所有端口仅返回所有端口B.

28、仅设置所有端口仅设置所有端口C. 返回或设置所有端口返回或设置所有端口D. 返回或设置返回或设置IP地址地址答案:答案:B285. 当使用当使用SendData将数据发送到主机后时,将触发将数据发送到主机后时,将触发的的Winsock控件的是(控件的是( )。)。A. SendProgressB. MouseDownC. ClickD. KeyPress答案:答案:A29 2.4 2.4 网络应用程序设计基础网络应用程序设计基础1. 1. 基于基于SocketSocket的通信过程的通信过程WinsockWinsock控件是基于控件是基于SocketSocket接口(套接字)创建的。接口(套接

29、字)创建的。它是现在它是现在TCP/IPTCP/IP网络中最通用的网络中最通用的APIAPI(应用程序(应用程序接口),也是在接口),也是在InternetInternet上进行应用程序开发最上进行应用程序开发最通用的通用的APIAPI。Windows SocketWindows Socket规范已成为规范已成为WindowsWindows网络编程的标准。网络编程的标准。SocketSocket在计算机中提供了一个通信端口,可以通在计算机中提供了一个通信端口,可以通过这个端口与任何一个也同样具有过这个端口与任何一个也同样具有SocketSocket接口的接口的计算机进行通信。应用程序在网络上传

30、输、接收计算机进行通信。应用程序在网络上传输、接收的信息都通过这个的信息都通过这个SocketSocket接口来实现。基于接口来实现。基于SocketSocket的通信过程如下页图所示:的通信过程如下页图所示:30SocketSocket应用程序应用程序A发送发送发送发送接收接收接收接收应用程序应用程序B通信细节通信细节利用利用Socket进行网络编程,只需对进行网络编程,只需对Socket接口进行接口进行数据的读写操作,根本不必关心两台计算机间的通数据的读写操作,根本不必关心两台计算机间的通信细节就能够完成数据的发送和接收工作。信细节就能够完成数据的发送和接收工作。31SocketSocke

31、t应用程序应用程序A发送发送发送发送接收接收接收接收应用程序应用程序B通信细节通信细节 利用利用Socket进行网络编程,只需对进行网络编程,只需对Socket接口进行数据的接口进行数据的读写操作,根本不必关心两台计算机间的通信细节就能够完读写操作,根本不必关心两台计算机间的通信细节就能够完成数据的发送和接收工作。成数据的发送和接收工作。P 215 习题习题 三三 问答题问答题1. 简述基于简述基于Socket的通信过程。的通信过程。322. 2.基于基于WinsockWinsock控件的开发模式控件的开发模式VBVB提供的提供的WinsockWinsock控件正是基于控件正是基于Socket

32、Socket规范创建的。规范创建的。利用利用WinsockWinsock控件开发网络通信系统时,通常要涉控件开发网络通信系统时,通常要涉及到服务器和客户机两类应用程序:及到服务器和客户机两类应用程序:(1 1)服务器程序的开发模式)服务器程序的开发模式v服务器程序必须设置好服务器程序必须设置好LocalPortLocalPort属性,作为侦听属性,作为侦听端口。该值可设置成任何一个整数,只要其它应端口。该值可设置成任何一个整数,只要其它应用程序没有使用过的值即可,单习惯上应大于用程序没有使用过的值即可,单习惯上应大于10001000。v使用使用ListenListen方法使服务器进入侦听状态,

33、等待客户方法使服务器进入侦听状态,等待客户机的连接请求。机的连接请求。332. 2.基于基于WinsockWinsock控件的开发模式控件的开发模式(1 1)服务器程序的开发模式)服务器程序的开发模式v客户机程序发出连接请求后,将触发服务器程序客户机程序发出连接请求后,将触发服务器程序的的ConnectionRequestConnectionRequest事件,该事件得到一个参数事件,该事件得到一个参数RequestIDRequestID。v服务器程序使用服务器程序使用AcceptAccept方法接受客户机程序的方法接受客户机程序的RequestIDRequestID请求。至此,服务器程序就可

34、以使用请求。至此,服务器程序就可以使用SendDataSendData方法向客户机发送数据了。方法向客户机发送数据了。v当服务器接收到数据时,会产生当服务器接收到数据时,会产生DataArrivalDataArrival事件。事件。在该事件中可使用在该事件中可使用GetDataGetData方法接收数据。方法接收数据。34353. 简述基于简述基于Winsock控件的开发过程。控件的开发过程。答:答:1 1)服务器程序的开发模式)服务器程序的开发模式服务器程序必须设置好服务器程序必须设置好LocalPortLocalPort属性,作为侦听端属性,作为侦听端口。使用口。使用ListenListe

35、n方法使服务器进入侦听状态,等待方法使服务器进入侦听状态,等待客户机的连接请求。客户机程序发出连接请求后,客户机的连接请求。客户机程序发出连接请求后,将触发服务器程序的将触发服务器程序的ConnectionRequestConnectionRequest事件,该事事件,该事件得到一个参数件得到一个参数RequestIDRequestID。服务器程序使用。服务器程序使用AcceptAccept方法接受客户机程序的方法接受客户机程序的RequestIDRequestID请求。至请求。至此,服务器程序就可以使用此,服务器程序就可以使用SendDataSendData方法向客户机方法向客户机发送数据了

36、。当服务器接收到数据时,会产生发送数据了。当服务器接收到数据时,会产生DataArrivalDataArrival事件。在该事件中可使用事件。在该事件中可使用GetDataGetData方法方法接收数据。接收数据。363. 简述基于简述基于Winsock控件的开发过程。控件的开发过程。2 2)客户机程序的开发模式)客户机程序的开发模式首先设置好首先设置好RemoteHost属性,用来指向运行服务器属性,用来指向运行服务器程序的远程计算机的的主机名或程序的远程计算机的的主机名或IP地址。设置地址。设置RemotePort属性,用来指向服务器程序的侦听端口属性,用来指向服务器程序的侦听端口号。使用

37、号。使用Connect方法向服务器提出连接请求。如方法向服务器提出连接请求。如果服务器接受了上述请求,客户机程序就会产生果服务器接受了上述请求,客户机程序就会产生Connect事件。连接成功后,就可以根据需要使用事件。连接成功后,就可以根据需要使用SendData方法向服务器发送数据了。当客户机程序方法向服务器发送数据了。当客户机程序接收的数据时,就会产生接收的数据时,就会产生DataArrival事件,可以用事件,可以用GetData方法接收数据。方法接收数据。37 3 3 其它网络应用程序设计其它网络应用程序设计 3.1 3.1 局域网中保证联网计算机时间同步局域网中保证联网计算机时间同步

38、 当采用客户机当采用客户机/ /服务器模式在局域网上开发系统时,服务器模式在局域网上开发系统时,必须保证所有计算机的时钟时间一致。在就需要用到统必须保证所有计算机的时钟时间一致。在就需要用到统一的时间,以便协调工作,最号的方法就是通过程序的一的时间,以便协调工作,最号的方法就是通过程序的方法,解决时钟同步的问题。方法,解决时钟同步的问题。38数据服务器数据服务器MyServer应用程序应用程序1应用程序应用程序2应用程序应用程序n这是某一应用系统的网络拓补结构,我们可以采用这是某一应用系统的网络拓补结构,我们可以采用Winsock控件解决众多客户机与数据服务器间的时间同步问题。控件解决众多客户

39、机与数据服务器间的时间同步问题。39 解决时钟同步的基本思路是:首先精确调整服解决时钟同步的基本思路是:首先精确调整服务器的时钟,然后,当客户机启动时与服务器连接,务器的时钟,然后,当客户机启动时与服务器连接,并与服务器并与服务器“对时对时”。这样,每当执行应用程序时,。这样,每当执行应用程序时,客户机就会与服务器时钟同步了。客户机就会与服务器时钟同步了。404. 如何保证局域网中联网的计算机同步运行?如何保证局域网中联网的计算机同步运行? 答:答:解决时钟同步的基本思路是:首先精确调整服解决时钟同步的基本思路是:首先精确调整服务器的时钟,然后,当客户机启动时与服务器连接,务器的时钟,然后,当

40、客户机启动时与服务器连接,并与服务器并与服务器“对时对时”。这样,每当执行应用程序时,。这样,每当执行应用程序时,客户机就会与服务器时钟同步了。客户机就会与服务器时钟同步了。P215 习题习题 三、问答题三、问答题 411.1.客户机程序的主要代码客户机程序的主要代码(1 1)与服务器建立连接)与服务器建立连接在客户机主窗体的在客户机主窗体的LoadLoad事件中连接服务器程序,具体方法与聊事件中连接服务器程序,具体方法与聊天程序相同。天程序相同。Private Sub Form_Load() 设置聊天服务器的侦听端口设置聊天服务器的侦听端口 WinsockClient.RemotePort

41、= 10001 读取本机的读取本机的IP地址地址 txtClientIP.Text = WinsockClient.LocalIP根据根据txtServerIP文本框中输入的服务器文本框中输入的服务器IP,连接聊天服务器,连接聊天服务器 WinsockClient.RemoteHost = txtServerIP.Text WinsockClient.Connect如果与服务器连接成功,则向用户提供下列信息如果与服务器连接成功,则向用户提供下列信息 MsgBox 你成功地与聊天服务器进行了连接你成功地与聊天服务器进行了连接,End Sub42(2)其它代码)其它代码Private Sub Wi

42、nsockClient_DataArrival(ByVal bytesTotal) 当收到服务器发来的数据时,完成以下工作:当收到服务器发来的数据时,完成以下工作: (1)日期数据类型接收数据;)日期数据类型接收数据; (2)设置本机的系统日期)设置本机的系统日期 定义一个日期类型数据变量定义一个日期类型数据变量 Dim MyDate As Date 以日期数据类型接受服务器日期数据以日期数据类型接受服务器日期数据 WinsockClient.GetData MyDate,VbDate 使本机的系统日期等于服务器日期使本机的系统日期等于服务器日期 Date=MyDateEnd Sub432.

43、2.服务端程序主要代码服务端程序主要代码Private Sub WinsockServer_ConnectionRequest _ (ByVal RequestID As Long) 当收到客户机的连接请求时,完成以下工作:当收到客户机的连接请求时,完成以下工作: (1)结束)结束Winsock的侦听状态;的侦听状态; (2)接受连接请求;)接受连接请求; (3)将服务器的系统日期发送给客户机)将服务器的系统日期发送给客户机 WinsockServer.Close WinsockServer.Accept RequestID 将系统当前的时间将系统当前的时间Date发送给提出请求的客户机发送给

44、提出请求的客户机 WinsockServer.SendDateEnd Sub44 3.2 Web 3.2 Web浏览器浏览器1.1.一个简单的浏览器应用程序示例一个简单的浏览器应用程序示例(1 1)创建一个新的)创建一个新的“标准标准EXEEXE”工程。利用工程。利用“工程工程”菜单的菜单的“部件部件”选项添加选项添加“Windows Internet ControlsWindows Internet Controls”以获得对以获得对WebBrowserWebBrowser控件的支持。控件的支持。(2 2)在)在Form1Form1窗口上添加窗口上添加Text1Text1、Command1C

45、ommand1和和WebBrowser1WebBrowser1等等控件。控件。(3 3)在)在Command1Command1控件的控件的ClickClick事件中,添加如下代码:事件中,添加如下代码: Private Sub Command1_Click( )Private Sub Command1_Click( ) 连接要浏览的网站地址连接要浏览的网站地址 WebBrowser1.Navigate Text1.TextWebBrowser1.Navigate Text1.Text End Sub End Sub(4 4)运行程序。在)运行程序。在Text1Text1输入网址后,单击输入网址

46、后,单击Command1Command1连接按连接按钮,即可进入有关网页。(演示)钮,即可进入有关网页。(演示)45 2. 2.一个较完整的浏览器应用程序一个较完整的浏览器应用程序 一个真正的浏览器(比如一个真正的浏览器(比如IEIE)至少需要后退)至少需要后退(BackBack)、前进()、前进(ForwordForword)、停止()、停止(StopStop)、刷新)、刷新(RefreshRefresh)、主页()、主页(HomeHome)和搜索()和搜索(SearchSearch)等功)等功能按钮,还能够显示当前网页的下载速度。要完成能按钮,还能够显示当前网页的下载速度。要完成这些工作,

47、就必须深入学习这些工作,就必须深入学习WebBrowserWebBrowser控件的有关控件的有关知识。知识。46(1 1)LocationURLLocationURL和和LocationNameLocationName属性属性 LocationURLLocationURL属性返回装入网页的地址,属性返回装入网页的地址, LocationNameLocationName属性则返回当前装入网页的标题。它属性则返回当前装入网页的标题。它们均是只读的,不能通过们均是只读的,不能通过VBVB程序改变其值。程序改变其值。(2 2)ProgressChangeProgressChange事件事件 下载网页

48、通常会花费一定的时间,可利用下载网页通常会花费一定的时间,可利用ProgressChangeProgressChange事件了提醒用户当前下载的进度。事件了提醒用户当前下载的进度。只要网页正在下载,改事件就会被周期性地触发。只要网页正在下载,改事件就会被周期性地触发。可将该事件与可将该事件与ProgressProgress控件结合使用,实现下载进控件结合使用,实现下载进度条提示效果。度条提示效果。(3 3)停止网页下载的方法)停止网页下载的方法 当用户觉得下载一个网页花费的时间太长而想当用户觉得下载一个网页花费的时间太长而想终止下载时,可使用终止下载时,可使用StopStop方法。方法。47(

49、4 4)后退与前进的方法)后退与前进的方法 如果要实现大多数浏览器所具有的后退与前进如果要实现大多数浏览器所具有的后退与前进功能,则可以使用功能,则可以使用GoBackGoBack,GoForwordGoForword方法。这两方法。这两个方法的基本原理是:对个方法的基本原理是:对WindowsWindows目录下的目录下的HistoryHistory文件夹进行搜索,重新调出已查看过的文件夹进行搜索,重新调出已查看过的HTMTHTMT页面缓页面缓存,从而完成后退与前进的功能。但如果要得到当存,从而完成后退与前进的功能。但如果要得到当前网页的最新内容,则要使用前网页的最新内容,则要使用Refre

50、shRefresh方法进行刷方法进行刷新。此外,如果想要在自己的浏览器程序中加入主新。此外,如果想要在自己的浏览器程序中加入主页,搜索等功能,则可以使用页,搜索等功能,则可以使用GoHomeGoHome,GoSearchGoSearch方方法。法。(5 5)DownLoadBeginDownLoadBegin和和DownLoadCompleteDownLoadComplete事件事件 当网页下载工作开始和结束时,分别触发这两当网页下载工作开始和结束时,分别触发这两个事件。这两个事件通常与个事件。这两个事件通常与ProgressChangeProgressChange事件结事件结合使用,起到提示

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 教育专区 > 教案示例

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

工信部备案号:黑ICP备15003705号© 2020-2023 www.taowenge.com 淘文阁