网络应用程序设计方法.ppt
《网络应用程序设计方法.ppt》由会员分享,可在线阅读,更多相关《网络应用程序设计方法.ppt(48页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、网络应用程序设计方法网络应用程序设计方法第第8 8章章1 8.1 网络聊天程序任务网络聊天程序任务 8.1.1 任务描述任务描述 VB提供了一系列的网络编程控件,利用它提供了一系列的网络编程控件,利用它们,网络编程将成为一件快乐而简单的工作。们,网络编程将成为一件快乐而简单的工作。VB网络控件主要有三种:网络控件主要有三种:(1)Winsok控件控件 主要用于编制基于主要用于编制基于TCP/IP或或UDP协议的网络应用程序。协议的网络应用程序。(2)Internet Transfer控件控件 主要以来传输主要以来传输文件,执行文件,执行FTP命令以及登录服务器等。命令以及登录服务器等。(3)W
2、ebBrowser 用于创建浏览器用于创建浏览器 本节先介绍本节先介绍Winsok控件。控件。2 在网络编程中最常用的方案是客户在网络编程中最常用的方案是客户机机/服务器模式(服务器模式(Client/ServerClient/Server,简称简称C/SC/S)。)。这种模式包含客户机和服务器这种模式包含客户机和服务器两类应用程序。其中客户应用程序向服两类应用程序。其中客户应用程序向服务器请求服务,而服务程序通常在一个务器请求服务,而服务程序通常在一个众所周知的地址侦听对服务的请求,也众所周知的地址侦听对服务的请求,也就是说,服务进程一直处于休眠状态,就是说,服务进程一直处于休眠状态,直到一
3、个客户提出了连接请求。此时,直到一个客户提出了连接请求。此时,服务持续将被唤醒,并对客户的请求作服务持续将被唤醒,并对客户的请求作出适当的反应。出适当的反应。3 聊天服务程序聊天服务程序:由客户端和服务端两个程序:由客户端和服务端两个程序组成,采用组成,采用WinsokWinsok控件开发。这两个程序可以在控件开发。这两个程序可以在同一台计算机上运行,也可以在网络上不同的计同一台计算机上运行,也可以在网络上不同的计算机上运行。整个系统的运行机制是:算机上运行。整个系统的运行机制是:第一步:建立连接第一步:建立连接 主要过程是:由客户端程序向服务端程序发主要过程是:由客户端程序向服务端程序发出连
4、接请求,服务端程序收到并接受连接请求,出连接请求,服务端程序收到并接受连接请求,至此客户机与服务器创建了数据交流通道。至此客户机与服务器创建了数据交流通道。第二步:开始聊天第二步:开始聊天 主要过程是:在客户机的主要过程是:在客户机的“发送的信息发送的信息”文文本框中输入文字时,服务器端的本框中输入文字时,服务器端的“收到的信息收到的信息”文本框中就会实时地显示相同的文字,反之亦然。文本框中就会实时地显示相同的文字,反之亦然。4P215 习题习题 一、填空题一、填空题1.Winsock控件主要用来编制控件主要用来编制TCP/IP或或 协协议的通话程序。议的通话程序。答案:答案:UDP2.在网络
5、编程中最常用的方案是在网络编程中最常用的方案是 。答案:客户机答案:客户机/服务器程序(服务器程序(Client/Server)5P215 P215 习题习题 三、问答题三、问答题2.2.简述网络聊天程序的运行过程。简述网络聊天程序的运行过程。答:网络聊天程序的运行过程是:答:网络聊天程序的运行过程是:第一步:建立连接第一步:建立连接 主要过程是:由客户端程序向服务端程序发主要过程是:由客户端程序向服务端程序发出连接请求,服务端程序收到并接受连接请求,出连接请求,服务端程序收到并接受连接请求,至此客户机与服务器创建了数据交流通道。至此客户机与服务器创建了数据交流通道。第二步:开始聊天第二步:开
6、始聊天 主要过程是:在客户机的主要过程是:在客户机的“发送的信息发送的信息”文文本框中输入文字时,服务器端的本框中输入文字时,服务器端的“收到的信息收到的信息”文本框中就会实时地显示相同的文字,反之亦然。文本框中就会实时地显示相同的文字,反之亦然。68.1.2.8.1.2.服务器的界面设计服务器的界面设计1.1.创建一个创建一个“标准标准 EXE”EXE”工程,选中工程,选中“工程工程”菜单菜单的的“部件部件”,在控件中找到,在控件中找到Microsoft Winsock Microsoft Winsock ControlControl并将其选中。并将其选中。2.2.将将Form1Form1的
7、名称改为的名称改为frmSvrfrmSvr,并在其中添加两个并在其中添加两个命令按钮(命令按钮(Command1Command1的的CaptionCaption属性为属性为“退出退出”,Command2Command2的的CaptionCaption属性为属性为“发送发送”)。)。3.3.在窗体是添加三个在窗体是添加三个TextBoxTextBox控件,其名称分别为控件,其名称分别为txtServerIPtxtServerIP,txtSendtxtSend和和txtReceivetxtReceive。4.4.在窗体上添加一个在窗体上添加一个WinsockWinsock控件,将其控件,将其Pro
8、tocolProtocol(协议)属性设置为协议)属性设置为0 0(即(即sckTCPProtocolsckTCPProtocol)。)。78.1.3 8.1.3 服务器程序代码设计服务器程序代码设计Private Sub Form_Load()Private Sub Form_Load()设置侦听端口设置侦听端口 WinsockServerWinsockServer.LocalPortLocalPort=10001=10001 读取服务器的读取服务器的IPIP地址地址 TxtServerIPTxtServerIP.Text=.Text=WinsockServer WinsockServer.
9、LocalIPLocalIP 开始侦听开始侦听 WinsockServerWinsockServer.Listen.ListenEnd SubEnd SubPrivate Sub Command1_Click()Private Sub Command1_Click()点击点击“退出退出”按钮后关闭应用程序按钮后关闭应用程序 Unload MeUnload MeEnd SubEnd Sub88.1.3 8.1.3 服务器程序代码设计服务器程序代码设计Private Sub Command2_Click()Private Sub Command2_Click()只要只要txtSendtxtSend
10、文本框的内容写好以后就由文本框的内容写好以后就由WinsockServerWinsockServer控件发送控件发送 WinsockServerWinsockServer.SendData TxtSendSendData TxtSend.Text.TextEnd SubEnd SubPrivate SubPrivate Sub WinsockServer WinsockServer_ _ConnectionRequestConnectionRequest(ByVal requestIDByVal requestID As Long)As Long)当收到连接请求时,当收到连接请求时,Winso
11、ckWinsock处于侦听状态处于侦听状态 此时应该使用此时应该使用CloseClose方法关闭方法关闭WinsockWinsock,然后使用然后使用AcceptAccept方法接方法接受连接请求受连接请求 WinsockServerWinsockServer.Close.Close WinsockServer WinsockServer.Accept.Accept requestID requestIDEnd Sub End Sub 98.1.3 8.1.3 服务器程序代码设计服务器程序代码设计Private SubPrivate Sub WinsockServer WinsockServe
12、r_ _DataArrivalDataArrival(ByVal ByVal BytesTotalBytesTotal As Long)As Long)当客户端有信息发送来时,利用当客户端有信息发送来时,利用WinsockServerWinsockServer控件控件的的GatDataGatData方法读取数据方法读取数据 并将其显示在并将其显示在txtReceivetxtReceive文本框中文本框中 DimDim MyStr MyStr As String As String WinsockServer WinsockServer.GetData MyStrGetData MyStr Tx
13、tReceive TxtReceive.Text=.Text=MyStr MyStrEnd SubEnd Sub108.1.4 8.1.4 客户机程序界面设计客户机程序界面设计1.1.创建一个新的创建一个新的“标准标准 EXE”EXE”工程,并添加工程,并添加Winsock Winsock 控件。控件。2.2.将将Form1Form1的名称改为的名称改为frmCltfrmClt,并在其中添加两个并在其中添加两个命令按钮(命令按钮(Command1Command1的的CaptionCaption属性为属性为“退出退出”,Command2Command2的的CaptionCaption属性为属性为
14、“连接服务器连接服务器”,Command3Command3的的CaptionCaption属性为属性为“发送发送”)。)。3.3.在窗体是添加四个在窗体是添加四个TextBoxTextBox控件,其名称分别为控件,其名称分别为txtClientIPtxtClientIP,txtServerIPtxtServerIP,txtSendtxtSend和和txtReceivetxtReceive。4.4.在窗体上添加一个在窗体上添加一个WinsockWinsock控件,将其控件,将其ProtocolProtocol(协议)属性设置为协议)属性设置为0 0(即(即sckTCPProtocolsckTCP
15、Protocol)。)。118.1.4.客户机的程序代码设计客户机的程序代码设计Private Sub Form_Load()设置聊天服务器的侦听端口设置聊天服务器的侦听端口 WinsockClient.RemotePort=10001 读取本机的读取本机的IP地址地址 txtClientIP.Text=WinsockClient.LocalIPEnd SubPrivate Sub Command1_Click()点击点击“退出退出”按钮后关闭应用程序按钮后关闭应用程序 Unload MeEnd Sub128.1.4.客户机的程序代码设计客户机的程序代码设计Private Sub Comman
16、d2_Click()根根据据txtServerIP文文本本框框中中输输入入的的服服务务器器IP,连连接接聊聊天服务器天服务器 WinsockClient.RemoteHost=txtServerIP.Text WinsockClient.ConnectEnd SubPrivate Sub Command3_Click()输输入入txtSend文文本本框框的的内内容容后后由由WinsockServer控控件件发送发送 WinsockClient.SendData txtSend.TextEnd Sub138.1.4.客户机的程序代码设计客户机的程序代码设计Private Sub WinsockC
17、lient_Connect()如果与服务器连接成功,则向用户提供下列信息如果与服务器连接成功,则向用户提供下列信息 MsgBox 你你 成成 功功 地地 与与 聊聊 天天 服服 务务 器器 进进 行行 了了 连连 接接,vbInformationEnd SubPrivate Sub WinsockClient_DataArrival(ByVal BytesTotal As Long)当当服服务务器器有有信信息息发发送送来来时时,利利用用WinsockClient控控件件的的GatData方法读取数据方法读取数据 并将其显示在并将其显示在txtReceive文本框中文本框中 Dim MyStr
18、As String WinsockClient.GetData MyStr txtReceive.Text=MyStrEnd Sub14演示聊天程序演示聊天程序15 8.2 Winsock控件及网络应用程序设计基础控件及网络应用程序设计基础 Winsock控控件件是是建建立立在在TCP协协议议的的基基础础上上,能能够够完完成成远远程程计计算算机机间间的的通通信信,用用途途非非常常广广泛泛。即即使使我我们们对对TCP/IP,TCP这这些些知知识识不不太太熟熟悉悉,只只要要理理解解了了网网络络应应用用程程序序设设计计的的一一般般原原理理,并并对对Winsock的的主主要要属属性性、方方法法和和事事
19、件件有有所所了了解解,也也可可以以在在很很短短时时间间内内创创建建一一个个简单的网络通信程序。简单的网络通信程序。168.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地址。地址。8.State属性:返回属性:返回Winsock控件的当前状态。控件的当前状态。17符号常数符号常数值值含义含义sckClosed0关闭状态,缺省值关闭状态,缺省值sckOpen1打开状态打开状态sckListening2侦听侦听状态状态
21、sckConnectionPending3连接状态连接状态sckResolvingHost4解析主机解析主机sckHostResolved5以以解析的主机解析的主机sckConnecting6正在连接正在连接Sckconnected7已经连接已经连接sckClosing8客户端正在关闭连接客户端正在关闭连接sckErros9错误错误Winsock控件的控件的State属性属性18P215 习题习题 二二、填空题填空题3.如果希望得到本地计算机的如果希望得到本地计算机的IP地址,可地址,可以使用以使用Winsock控件的控件的 属性。属性。答案:答案:LocalIP4.Winsock控件的控件的
22、BytesReceived属性返回属性返回接收到的数据,通常使用接收到的数据,通常使用 方法方法来获取这些数据。来获取这些数据。答案:答案:GetData3.如果如果Winsock1.LocaPort=0,那么应用程那么应用程序将序将 。答案:使用随机端口答案:使用随机端口198.2.2 8.2.2 WinsockWinsock控件的主要方法控件的主要方法WinsockWinsock控件的方法主要有六个:控件的方法主要有六个:1.1.ListenListen方法方法语法:语法:WinsockWinsock对象对象.ListenListen作用:使服务器处于侦听状态,等待客户访问。作用:使服务器
23、处于侦听状态,等待客户访问。2.2.ConnectConnect方法方法语语法法:WinsockWinsock对对象象.ConnectConnect远远程程主主机机IPIP,远远程端口程端口 作用:用于向远程主机发出连接请求。作用:用于向远程主机发出连接请求。3.3.AcceptAccept方法方法语法:语法:WinsockWinsock对象对象.Accept Accept RequestIDRequestID作作用用:用用于于接接受受一一个个连连接接请请求求,其其中中RequestIDRequestID是是客户机发来的请求信号客户机发来的请求信号208.2.2 8.2.2 WinsockWi
24、nsock控件的主要方法控件的主要方法WinsockWinsock控件的方法主要有六个:控件的方法主要有六个:4.4.SendDataSendData方法方法语法:语法:WinsockWinsock对象对象.SendData SendData 数据数据作用:用于发送数据作用:用于发送数据5.5.GetDataGetData方法方法语语法法:WinsockWinsock对对象象.GetData GetData 变变量量 数数据据类类型型,最大长度,最大长度 作用:用来获得接收到的数据作用:用来获得接收到的数据6.6.ClcseClcse方法方法语法:语法:WinsockWinsock对象对象.C
25、loseClose作用:关闭当前连接作用:关闭当前连接21P215 习题习题 二二、填空题填空题5.Winsock1.Listen语句的含义是语句的含义是 。答案:答案:LocalIP使使服务器处于侦听状态,等待客户访问。服务器处于侦听状态,等待客户访问。228.2.3 8.2.3 WinsockWinsock控件的主要事件控件的主要事件WinsockWinsock控件的事件主要有两个:控件的事件主要有两个:1.1.DataArrivalDataArrival事事件件:一一旦旦数数据据到到达达,就就会会触触发发该该事事件件。它它通通常常与与GetDataGetData方方法法一一起起使使用用,
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 网络 应用 程序设计 方法
限制150内