| 网站首页 | JAVA文章 | AppServers | Web开发 | 应用开发 | 资源下载 | 论坛
    想学好编程,学好外语很重要  [enadd  2006年12月25日]        
设为首页 加入收藏 联系站长
您现在的位置: 编程笔记网 >> 应用开发 >> vb >> Internet >> 文章正文
在VB编程中用Winsock实现文件下载            【字体:
在VB编程中用Winsock实现文件下载
作者:陈逸帆    文章来源:-    点击数:    更新时间:2006-9-8

 羡慕现在流行的各类下载工具吗?其实利用VB提供的Winsock 控件,开发者完全可以实现这些软件的核心功能。Winsock 控件提供了访问TCP和UDP网络服务的方便途径,使用该控件编写客户或服务器应用程序,不必了解 TCP 的细节或调用底层的 Winsock API。只需设置控件的属性并调用其相应的方法就可以方便地连接到远程主机上,并且可以双向交换数据。

  用TCP/IP协议连接的两台计算机可以彼此进行数据传输。如果创建客户应用程序,就必须获取服务器计算机名或 IP 地址,及进行“侦听”的端口,然后连接即可。如果创建服务器应用程序,应设置一个收听端口并进行收听。

  UDP(用户数据文报协议)是一个无连接协议,计算机并不建立连接。为了传输数据,首先要设置客户计算机的端口。然后,服务器计算机只需将设置客户计算机的Internet地址,并将远程端口设置为与客户计算机的本地端口相同的值即可发送信息。

  本文介绍的程序思路比较简单,使用Winsock 控件与服务器建立连接后,客户端计算机调用SendData方法发送特定的FTP命令数据。当客户端接收数据时,Winsock 控件会发生DataArrival事件,调用DataArrival 事件内的GetData方法即可获取数据。

  启动VB6,新建一个工程,在控件箱中添加Winsock控件。在窗体上放置一个CommandButton 控件,一个TextBox 控件,一个Winsock控件,如图1所示。

  程序代码:

  首先,声明一些变量,代码如下所示。

  Dim strCommand As String

  Dim strWebPage As String

  为了动态设置Winsock控件的一些属性,在“开始”按钮的Click事件加入以下代码。

  Winsock1.RemoteHost="192.168.100.101" '设置连接的IP地址

  Winsock1.RemotePort = 80 '设置连接的远程端口号

  Winsock1.Connect '开始连接远程计算机。

  当Winsock控件连接操作完成,就可以传送FTP命令给服务器了,因此在Winsock控件的Connect事件中加入以下代码:

  On Error Resume Next '在错误处理程序结束后,恢复原有的运行

  strWebPage= " 192.168.100.101/main.htm" '设置要下载的文件'添加FTP中取得文件的命令(GET)

  strCommand = "GET " + strWebPage + " HTTP/1.0" + vbCrLf

  strCommand = strCommand + "Accept: */*" + vbCrLf

  strCommand = strCommand + "Accept: text/html" + vbCrLf

  strCommand = strCommand + vbCrLf '必须以vbCrLf结束命令

  Winsock1.SendData strCommand '向远程计算机发送命令

  当Winsock控件获取到数据时,需要对数据进行处理,本例中将获取的内容显示在文本框控件中,因此在Winsock控件的DataArrival事件加入以下代码:

  On Error Resume Next '在错误处理程序结束后,恢复原有的运行

  Dim webData As String

  Winsock1.GetData webData,vbString '获取当前的数据块

  Text1.Text = Text1.Text + webData '显示接收到的数据

  结束语

  怎么样?一个最简单的文件下载程序就诞生了。其实,开发者完全可以在本例的基础上结合多线程和断点保存技术,开发出更加强大的网络下载程序。也许下一个红透网络的下载程序就是你的作品哦。

[1]

文章录入:enadd    责任编辑:enadd 
  • 上一篇文章:

  • 下一篇文章:
  • 发表评论】【加入收藏】【告诉好友】【打印此文】【关闭窗口
    最新热点 最新推荐 相关文章
  • 用VB编写DirectX7.0游戏(下…

  • 用VB编写DirectX7.0游戏(上…

  • 使用OLE DB和ADO调用返回记录…

  • 使用VB调用Oracle程序包内的…

  • VB中用ADO对象动态创建数据库…

  • fffff

  • 如何用MSComm Control传Bina…

  • MultiLink的WinSock Server程…

  • 用VB制作浏览器

  • 用VB编写网络寻呼机

  •   网友评论:(只显示最新10条。评论内容只代表网友观点,与本站立场无关!)
    | 设为首页 | 加入收藏 | 联系站长 | 友情链接 | 版权申明 | 管理登录 |