《VB网络程序设计.ppt》由会员分享,可在线阅读,更多相关《VB网络程序设计.ppt(48页珍藏版)》请在第壹文秘上搜索。
1、VB网络程序设计网络程序设计1 1 网络聊天程序任务网络聊天程序任务 1.1 任务描述任务描述VB提供了一系列的网络编程控件,利用它们,网提供了一系列的网络编程控件,利用它们,网络编程将成为一件快乐而简单的工作。络编程将成为一件快乐而简单的工作。VB网络控件主要有三种:网络控件主要有三种:(1)Winsok控件控件 主要用于编制基于主要用于编制基于TCP/IP或或UDP协议的网络应用程序。协议的网络应用程序。(2)Internet Transfer控件控件 主要以来传输文件,主要以来传输文件,执行执行FTP命令以及登录服务器等。命令以及登录服务器等。(3)WebBrowser 用于创建浏览器用
2、于创建浏览器 本节先介绍本节先介绍Winsok控件。控件。 2 在网络编程中最常用的方案是客户机在网络编程中最常用的方案是客户机/ /服务器服务器模式(模式(Client/ServerClient/Server,简称,简称C/SC/S)。这种模式包)。这种模式包含客户机和服务器两类应用程序。其中客户应用含客户机和服务器两类应用程序。其中客户应用程序向服务器请求服务,而服务程序通常在一个程序向服务器请求服务,而服务程序通常在一个众所周知的地址侦听对服务的请求,也就是说,众所周知的地址侦听对服务的请求,也就是说,服务进程一直处于休眠状态,直到一个客户提出服务进程一直处于休眠状态,直到一个客户提出了
3、连接请求。此时,服务持续将被唤醒,并对客了连接请求。此时,服务持续将被唤醒,并对客户的请求作出适当的反应。户的请求作出适当的反应。3 聊天服务程序聊天服务程序:由客户端和服务端两个程序:由客户端和服务端两个程序组成,采用组成,采用WinsokWinsok控件开发。这两个程序可以在控件开发。这两个程序可以在同一台计算机上运行,也可以在网络上不同的计同一台计算机上运行,也可以在网络上不同的计算机上运行。整个系统的运行机制是:算机上运行。整个系统的运行机制是: 第一步:建立连接第一步:建立连接 主要过程是:由客户端程序向服务端程序发主要过程是:由客户端程序向服务端程序发出连接请求,服务端程序收到并接
4、受连接请求,出连接请求,服务端程序收到并接受连接请求,至此客户机与服务器创建了数据交流通道。至此客户机与服务器创建了数据交流通道。 第二步:开始聊天第二步:开始聊天 主要过程是:在客户机的主要过程是:在客户机的“发送的信息发送的信息”文文本框中输入文字时,服务器端的本框中输入文字时,服务器端的“收到的信息收到的信息”文本框中就会实时地显示相同的文字,反之亦然。文本框中就会实时地显示相同的文字,反之亦然。41. Winsock控件主要用来编制控件主要用来编制TCP/IP或或 协议的通话协议的通话程序。程序。答案:答案:UDP2. 在网络编程中最常用的方案是在网络编程中最常用的方案是 。答案:客户
5、机答案:客户机/服务器程序(服务器程序(Client/Server)5P215 P215 习题习题 三、问答题三、问答题2.2.简述网络聊天程序的运行过程。简述网络聊天程序的运行过程。答:网络聊天程序的运行过程是:答:网络聊天程序的运行过程是: 第一步:建立连接第一步:建立连接 主要过程是:由客户端程序向服务端程序发主要过程是:由客户端程序向服务端程序发出连接请求,服务端程序收到并接受连接请求,出连接请求,服务端程序收到并接受连接请求,至此客户机与服务器创建了数据交流通道。至此客户机与服务器创建了数据交流通道。 第二步:开始聊天第二步:开始聊天 主要过程是:在客户机的主要过程是:在客户机的“发
6、送的信息发送的信息”文文本框中输入文字时,服务器端的本框中输入文字时,服务器端的“收到的信息收到的信息”文本框中就会实时地显示相同的文字,反之亦然。文本框中就会实时地显示相同的文字,反之亦然。6 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(协议)属性设置为(协议)属性设
8、置为0 0(即(即sckTCPProtocolsckTCPProtocol)。)。7 1.3 1.3 服务器程序代码设计服务器程序代码设计Private Sub Private Sub Form_LoadForm_Load()() 设置侦听端口设置侦听端口 WinsockServer.LocalPortWinsockServer.LocalPort = 10001 = 10001 读取服务器的读取服务器的IPIP地址地址 TxtServerIP.TextTxtServerIP.Text = = WinsockServer.LocalIPWinsockServer.LocalIP 开始侦听开始侦
9、听 WinsockServer.ListenWinsockServer.ListenEnd SubEnd SubPrivate Sub Command1_Click()Private Sub Command1_Click() 点击点击“退出退出”按钮后关闭应用程序按钮后关闭应用程序 Unload MeUnload MeEnd SubEnd Sub8 1.3 1.3 服务器程序代码设计服务器程序代码设计Private Sub Command2_Click()Private Sub Command2_Click() 只要只要txtSendtxtSend文本框的内容写好以后就由文本框的内容写好以后就
10、由WinsockServerWinsockServer控件发送控件发送 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 9 1.3 1.3 服务器程序代码设计服务器程序代码设计Private Sub WinsockServer_DataArrival(ByVal Private Sub WinsockServer_D
12、ataArrival(ByVal BytesTotal As Long)BytesTotal As Long) 当客户端有信息发送来时,利用当客户端有信息发送来时,利用WinsockServerWinsockServer控件控件的的GatDataGatData方法读取数据方法读取数据 并将其显示在并将其显示在txtReceivetxtReceive文本框中文本框中 Dim MyStr As StringDim MyStr As String WinsockServer.GetData MyStr WinsockServer.GetData MyStr TxtReceive.Text = MyS
13、tr TxtReceive.Text = MyStrEnd SubEnd Sub10 1.4 1.4 客户机程序界面设计客户机程序界面设计1.1.创建一个新的创建一个新的“标准标准 EXEEXE”工程,并添加工程,并添加Winsock Winsock 控件。控件。2.2.将将Form1Form1的名称改为的名称改为frmCltfrmClt,并在其中添加两个,并在其中添加两个命令按钮(命令按钮(Command1Command1的的CaptionCaption属性为属性为“退出退出”, Command2Command2的的CaptionCaption属性为属性为“连接服务器连接服务器” ,Comm
14、and3Command3的的CaptionCaption属性为属性为“发送发送”)。)。3.3.在窗体是添加四个在窗体是添加四个TextBoxTextBox控件,其名称分别为控件,其名称分别为txtClientIPtxtClientIP,txtServerIPtxtServerIP,txtSendtxtSend和和txtReceivetxtReceive。4.4.在窗体上添加一个在窗体上添加一个WinsockWinsock控件,将其控件,将其ProtocolProtocol(协议)属性设置为(协议)属性设置为0 0(即(即sckTCPProtocolsckTCPProtocol)。)。11 1
15、.4. 客户机的程序代码设计客户机的程序代码设计Private Sub Form_Load() 设置聊天服务器的侦听端口设置聊天服务器的侦听端口 WinsockClient.RemotePort = 10001 读取本机的读取本机的IP地址地址 txtClientIP.Text = WinsockClient.LocalIPEnd SubPrivate Sub Command1_Click() 点击点击“退出退出”按钮后关闭应用程序按钮后关闭应用程序 Unload MeEnd Sub12 1.4. 客户机的程序代码设计客户机的程序代码设计Private Sub Command2_Click()
16、 根据根据txtServerIP文本框中输入的服务器文本框中输入的服务器IP,连接聊,连接聊天服务器天服务器 WinsockClient.RemoteHost = txtServerIP.Text WinsockClient.ConnectEnd SubPrivate Sub Command3_Click() 输入输入txtSend文本框的内容后由文本框的内容后由WinsockServer控控件发送件发送 WinsockClient.SendData txtSend.TextEnd Sub13 1.4. 客户机的程序代码设计客户机的程序代码设计Private Sub WinsockClient_Connect() 如果与服务器连接成功,则向用户提供下列信息如果与服务器连接成功,则向用户提供下列信息 M s g B o x 你 成 功 地 与 聊 天 服 务 器 进 行 了 连 接你 成 功 地 与 聊 天 服 务 器 进 行 了 连 接 , vbInformationEnd SubPrivate Sub WinsockClient_DataArrival(ByVal BytesTota