《VB程序设计第八章.ppt》由会员分享,可在线阅读,更多相关《VB程序设计第八章.ppt(16页珍藏版)》请在三一办公上搜索。
1、第8章 网络程序设计方法,教学要求,1掌握Winsock控件的基本用法2、了解网络应用程序设计的基础知识3、了解网络聊天应用程序的开发过程,8.1 网络聊天程序任务,8.1.1 任务描述常用的VB网络编程控件主要有Winsock、Internet Transfer、WebBrowser三种。主要用途是:(1)Winsock控件主要用来编制基于TCP/IP或UDP协议的网络应用程序等;(2)Internet Transfer控件主要用来传输文件,执行FTP命令以及登录服务器等;(3)WebBrsower用于创建浏览器。,8.2 Winsock控件及网络应用程序设计,8.2.1 Winsock控件
2、的主要属性1、ByteReceived:返回接收到的数据,通常用GetData方法获取2、LocalHostName:返回本地计算机的名称3、LocalIP:返回本地计算机的IP地址4、LocalPort:返回或设置所用的端口5、Protocol:返回或设置Winsock所用的协议6、RemoteHostName:返回或设置远程计算机名7、RemoteHostIP:返回远程计算机的IP地址8、State:返回Winsock控件当前的状态,8.2 Winsock控件及网络应用程序设计,8.2.2 Winsock控件的主要方法1、Listen方法语法:Winsock对象.Listen作用:使服务程
3、序处于侦听状态,等待客户访问2、Connect方法语法:Winsock对象.Connect 远程主机IP,远程端口作用:用于向远程主机发出连接请求3、Accept方法语法:Winsock对象.Accept RequestID作用:用于接受一个连接请求,8.2 Winsock控件及网络应用程序设计,8.2.2 Winsock控件的主要方法4、SendData方法语法:Winsock对象.SendData 数据作用:用于发送数据5、GetData方法语法:Winsock对象.GetData 变量数据类型,最大长度作用:用来取得接收到的数据6、Close方法语法:Winsock对象.Close作用:
4、关闭当前连接,8.2 Winsock控件及网络应用程序设计,8.2.3 Winsock控件的主要事件1、DataArrival事件:数据到达触发该事件,通常与GetData同时使用,通过GetData方法获取新到达的数据。2、ConnectionRequest事件:当客户机使用Connect方法请求连接时触发,通常与Accept方法一起使用,用来接收客户机的连接请求。,8.2 Winsock控件及网络应用程序设计,8.2.4 网络应用程序设计基础1、基于Socket的通信过程Winsock控件是基于Socket接口(套接字)创建的,是TCP/IP网络中最通用的API(应用程序接口),也是在In
5、ternet上进行应用程序开发最为通用的API。这种协议产生于20世纪80年代,为TCP/IP网络通信开发。90年代初,Microsoft制定了Windows Socket规范,是一套开放的、支持多种协议的Windows环境下的网络编程接口,已成为Windows网络编程的标准。,8.2 Winsock控件及网络应用程序设计,8.2.4 网络应用程序设计基础1、基于Socket的通信过程Socket在计算机中提供一个通信端口,可通过此端口与任何一个具有Socket接口的计算机通信。应用程序在网络传输、接收的信息都通过这个Socket接口来实现。只要对Socket接口进行数据的读写操作,不必关心两
6、台计算机之间的通信细节就可以完成数据的发送和接收工作。P209图8.3,8.2 Winsock控件及网络应用程序设计,8.2.4 网络应用程序设计基础2、基于Winsock控件的开发模式(1)服务器程序开发模式设置好LocalPort属性,作为侦听端口。使用Listen方法使服务器进入侦听状态,等待客户机的连接请求客户机程序发出连接请求后,将触发服务器程序的ConnectionRequest事件,得到requestID参数服务器程序使用Accept方法接收请求服务器程序接收到数据后产生DataArrival事件,8.2 Winsock控件及网络应用程序设计,8.2.4 网络应用程序设计基础2、
7、基于Winsock控件的开发模式(2)客户机程序开发模式设置好RemoteHost属性,指向服务器程序的主机名或IP地址设置RemotePort属性,指向服务器的侦听端口使用Connect方法向服务器提出连接请求服务器接受请求则产生Connect事件,连接成功后,可使用SendData方法向服务器发送数据接收数据产生DataArrival事件,可用GetData方法接收数据。,8.3 其他网络应用程序设计,8.3.1 局域网中保证联网计算机时间同步通过程序可是使局域网中的计算机时间同步。可采用Winsock控件解决客户机与服务器间的时间同步问题。基本思路:先精确调整服务器的时钟,当客户机启动与
8、服务器连接,并与服务器对时,获得服务器的时钟数据,执行客户程序时,可使客户机与服务器时钟同步。,8.3 其他网络应用程序设计,8.3.1 局域网中保证联网计算机时间同步1、客户端程序主要代码(1)与服务器建立连接参见网络聊天开发程序(2)其他代码Private Sub WinsockClient_DataArrival(ByVal bytesTotal As Long)Dim MyDate As DateWinsockClient.GetData MyDate,vbDateDate=MyDate:End Sub,8.3 其他网络应用程序设计,8.3.1 局域网中保证联网计算机时间同步2、服务器
9、端主要程序代码Private Sub WinsockServer_ConnectionRequest(ByVal requestID As Long)WinsockServer.CloseWinsockServer.Accept requestIDWinsockServer.SendData DateEnd Sub,8.3 其他网络应用程序设计,Web浏览器1、一个简单的浏览器应用程序(1)创建一个“标准EXE”工程。打开“工程”菜单的“部件”命令,添加“Windows Internet Controls”(2)添加Text1、Command1、WebBrowser1控件(3)在Command1的Click事件中添加代码:WebBrowser1.Navigate Text1.Text(4)运行程序,在Text1文本框中输入网址后,单击Command1连接按钮。,小结,1掌握Winsock控件的基本用法2、了解网络应用程序设计的基础知识3、了解网络聊天应用程序的开发过程,