⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 m34.htm

📁 vb教程 vb教程 vb教程 vb教程 vb教程 vb教程 vb教程 vb教程 vb教程 vb教程 vb教程
💻 HTM
📖 第 1 页 / 共 3 页
字号:
          </span></font></p>
        <p>     </span></font></p>
        <p>    2.3 创建一个 TCP客户端(Socket客户) 
          </span></font></p>
        <p>    1)在项目中添加一个新的窗体,将其命名为frmClient。在窗体中添加一个Winsock控件,并将其命名为tcpClient。在frmClient中添加两个TextBox控件,将第一个命名为txtSend,第二个命名为txtOutput。在窗体上放一个CommandButton控件,并将其命名为cmdConnect。 
          </span></font></p>
        <p>    2)将CommandButton控件的标题改为“连接”。 
          </span></font></p>
        <p>    3)在窗体中添加如下的代码。 </span></font></p>
        <p>    Private Sub Form_Load() 
          </span></font></p>
        <p>    'Winsock控件名字为tcpClient。 
          </span></font></p>
        <p>    '注意:要指定远程主机,可以使用IP地址(例如:“121.111.1.1”), 
          </span></font></p>
        <p>    '也可以使用计算机的别名,如下所示: </span></font></p>
        <p>    tcpClient.RemoteHost 
          = "HostServer1" </span></font></p>
        <p>     tcpClient.RemotePort 
          = 2000 </span></font></p>
        <p>    End Sub </span></font></p>
        <p>    要创建客户连接服务器,首先要设置服务器主机名,如IP地址、域名或计算机名等,然后设定服务端口号,最后连接到服务器上。在程序中: 
          </span></font></p>
        <p>    RemoteHost属性表示服务器主机名; 
          </span></font></p>
        <p>    RemotePort属性表示服务器端口号。 
          </span></font></p>
        <p>    Private Sub cmdConnect_Click() 
          </span></font></p>
        <p>    '调用Connect方法,初始化连接。 
          </span></font></p>
        <p>     tcpClient.Connect </span></font></p>
        <p>    End Sub </span></font></p>
        <p>    Connect方法连接到服务器; </span></font></p>
        <p>     </span></font></p>
        <p>    Private Sub txtSendData_Change() 
          </span></font></p>
        <p>     tcpClient.SendData 
          txtSend.Text </span></font></p>
        <p>    End Sub </span></font></p>
        <p>     </span></font></p>
        <p>    Private Sub tcpClient_DataArrival 
          (ByVal bytesTotal As Long) </span></font></p>
        <p>     Dim strData As String 
          </span></font></p>
        <p>     tcpClient.GetData strData 
          </span></font></p>
        <p>     txtOutput.Text = strData 
          </span></font></p>
        <p>    End Sub </span></font></p>
        <p>     </span></font></p>
        <p>    Private Sub tcpClient_Close(Index 
          As Integer) </span></font></p>
        <p>    tcpClient.Close </span></font></p>
        <p>    End Sub </span></font></p>
        <p>     </span></font></p>
        <p>    至此,我们创建了一个简单的客户/服务器模式的应用程序。我们可以将两者都运行起来:运行项目,然后单击“连接”。在两个窗体之一的txtSendData文本框中键入文本,可以看到同样的文字将出现在另一个窗体的txtOutput文本框中(如图2.2所示)。 
          </span></font></p>
        <p>    <a 
      href="file:///C:/WINDOWS/Desktop/artical/pcccontent.html/pcc/98_12/images/12802.gif">图2.2</a> 
          </span></font></p>
        <p>    2.4 创建多客户服务器,接受多个连接请求 
          </span></font></p>
        <p>    上面设计的基本服务器只能接受一个连接请求。通过创建控件数组,使用一个控件也可以同时接受多个连接请求。利用这种方法,不再需要关闭连接,而只需创建新的控件实例(通过设置其索引属性),然后,在新的实例上调用Accept方法。 
          </span></font></p>
        <p>    下面的代码假定名字为sckServer的窗体上有一个Winsock控件,它的Index属性被设置为0;控件是控件数组的一部分。在声明部分,声明了一个模块级的变量intMax。在窗体的Load事件中,intMax被设置为0,数组中第一个控件的LocalPort属性被设置为2000。然后调用控件的Listen方法,使之成为“侦听”控件。在连接请求到达时,代码将检测Index是否为0(“侦听”控件的值)。如果为0,侦听控件将增加intMax的值,并使用该号码来创建新的控件实例。然后使用新的控件实例接受连接请求。 
          </span></font></p>
        <p>    Private intMax As Long 
          </span></font></p>
        <p>    Private Sub Form_Load() 
          </span></font></p>
        <p>     intMax = 0 </span></font></p>
        <p>     sckServer(0).LocalPort 
          = 2000 </span></font></p>
        <p>     sckServer(0).Listen 
          </span></font></p>
        <p>    End Sub </span></font></p>
        <p>    设定端口号后开始侦听。 </span></font></p>
        <p>     </span></font></p>
        <p>    Private Sub sckServer_ConnectionRequest 
          (Index As Integer, ByVal requestID As Long) </span></font></p>
        <p>     If Index = 0 Then </span></font></p>
        <p>     intMax = intMax + 1 
          </span></font></p>
        <p>     Load sckServer(intMax) 
          </span></font></p>
        <p>     sckServer(intMax).LocalPort 
          = 0 </span></font></p>
        <p>     sckServer(intMax).Accept 
          requestID </span></font></p>
        <p>     Load txtData(intMax) 
          </span></font></p>
        <p>     End If </span></font></p>
        <p>    End Sub </span></font></p>
        <p>    在ConnectionRequest事件中,首先加载一个Socket控件,然后再用它来接收连接。 
          </span></font></p>
        <p>     </span></font></p>
        <p>    2.5 测试开发中应该注意的问题 </span></font></p>
        <p>    1)协议的设置。 </span></font></p>
        <p>    当WinSock控件与远程计算机建立连接时,亦可通过用户数据包协议(UDP)进行数据交换。在使用WinSock控件时,首先需要考虑使用什么协议。TCP应用程序应注意选择TCP协议。可按如下方式设置应用程序使用的协议:在“属性”窗口中单击“协议”,然后选择sckTCPProtocol或者sckUDPProtocol。也可以使用程序代码来设置Protocol属性,如下所示: 
          </span></font></p>
        <p>    Winsock1.Protocol = 
          sckTCPProtocol开发TCP应用程序应注意选择TCP协议。 </span></font></p>
        <p>    2)注意确定“计算机的名字”。 </span></font></p>
        <p>    计算机的名字用如下方式查找: </span></font></p>
        <p>    ①在计算机的“任务栏”上,单击“开始”。 
          </span></font></p>
        <p>    ②在“设置”项中,单击“控制面板”。 </span></font></p>
        <p>    ③ 双击“网络”图标。 </span></font></p>
        <p>    ④ 单击“标识”选项卡。 </span></font></p>
        <p>    ⑤ 在“计算机名称”框中可以找到计算机的名称。 
          </span></font></p>
        <p>    上面找到的计算机名称可以作为RemoteHost属性的值。应用这一技术,我方便地完成了某企业信息管理系统,成功地实现了企业内部信息流的处理。虽然目前已有WWW浏览器、FTP等Internet互联网的应用工具,可以下载网上的信息,或实现网上工作站间的数据与文件的传输,但是用Windows 
          Sockets则可方便地在用户自己设计的Windwos应用程序中通过Internet互联网传输数据,由于互联网的传输速度可以高达数十兆到数百兆比特每秒,因此,除了可以传递一般的文字、图形、声音等数据文件外,还可以用来传递实时的图像数据。 
          </span></font></p>
        <p>     </span></font></p>
        <p>    三.创建Internet Explorer中运行的应用程序 
          </span></font></p>
        <p>    3.1 概述 </span></font></p>
        <p>    Visual Basic 5.0版本是直接针对Internet的(也有人称是针对ActiveX的),Microsoft目前正在加紧开发用于WWW的Visual 
          Basic(估计Visual Basic 6.0必将具有这一功能)。Visual Basic包括一个称为用户文档的新容器类型。用户文档构成了Visual 
          Basic Document(也称ActiveX Document)文档的基础,并且生成的文档能够使用Microsoft Internet 
          Explorer 3.0以上版本在Internet上浏览(见图3.1)。利用这一功能我们可以方便地创建动态Web页面。必须指出的是:使用Visual 
          Basic创建的AcitveX Document与其他ActiveX Document略有不同。Visul Basic AcitveX 
          Document与Visual Basic窗体大致相同,能在ActiveX Document容器中使用,但我们不能像运行独立应用程序那样运行它们。用户文档与窗体非常相似,可以包括控件、显示消息框、处理数据以及调用其他组件。用户文档与窗体的区别主要表现在:⑴应用程序中的其他部分无法得到用户文档中的数据,不能从文档外部引用用户文档中的属性值。⑵给予用户文档的应用程序需要Internet 
          Explorer来运行,无法直接从Visual Basic中调试它们。⑶编译过的应用程序必须从HTM文件启动,它在显示VBD文件之前装入应用程序的代码组件。如果没有这个HTM文件,就不能启动编译过的EXE文件或从Internet 
          Explorer中查看VBD文件。 </span></font></p>
        <p>    3.2 ActiveX 文档对象的重要属性 
          </span></font></p>
        <p>    在讲述创建ActiveX 文档的具体方法之前,我们先研究一下ActiveX 
          文档对象的重要属性。每个用户文档包含一个内置的Hyperlink对象,可用它来进入URLs和访问Internet Explorer的文档高速缓存。NavigateTo方法大致等价于窗体的Show方法。 
          </span></font></p>
        <p>    事件 Show:当浏览器显示文档时发生; 
          </span></font></p>
        <p>     Hide:当浏览器离开文档时发生; </span></font></p>
        <p>    属性 HyperLink:用于导航对象; 
          </span></font></p>
        <p>     HyperLink对象有三个重要方法: 
          </span></font></p>
        <p>     GoBack:前一页面; </span></font></p>
        <p>     GoFoward:后一页面; </span></font></p>
        <p>     Navigateto:导航; </span></font></p>
        <p>    例如HyperLink.Navigateto 
          "http:/www.pccomputing.com"可以导航至《电子与电脑》杂志的主页。 </span></font></p>
        <p>    3.3 用Visual Basic创建ActiveX 
          Document的具体步骤 </span></font></p>
        <p>    我们将开发具有如下功能的应用程序:创建两个ActiveX文档页面,第一个要求访问者输入密码,按动按钮后,若密码正确则进入第二页面;第二页面可以导航至中国教育与科研计算机网的主服务器。 
          </span></font></p>
        <p>    1)在File菜单中单击New Project来打开一个New 
          Project对话框,然后双击ActiveX Document exe图标,即可建立一个新项目并进入开发环境。 </span></font></p>

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -