打开APP
userphoto
未登录

开通VIP,畅享免费电子书等14项超值服

开通VIP
VB网络编程入门(一)

如今,网络编程可谓如火如荼了,我们作为编程迷能坐在那里稳如泰山吗?当然不能。

  但是网络编程又是一个神秘莫测的地带,涉及到什么TCP/IP等之类的专业术语。的确,在以前,没有极深厚的专业基础是不敢涉足网络编程的。不过,一切都在成为过去。VB自从5.0以后的版本提供了非常简便的Internet控件,复杂的技术细节都封装在控件内部。你如果学会使用这些控件,相信你就会会发现那看似复杂的一切居然如此简单!这些Internet类控件有三个。

  其中,Winsock控件主要是用来编制TCP/IP或UDP协议的通话应用程序。Internet Transfer控件主要用来传输文件,执行FTP命令及登录服务器等。WebBrowser则用于创建可加入自己的应用程序的浏览器。可能对于WebBrowser这个控件来说大家是比较熟悉的了,介绍饿文章比较多,它用来制作浏览器。下面我们介绍这前面两个控件的具体使用方法。

  一、用Internet Transfer编写文件传输程序

  文件传输实质就是让用户获得访问网络文件的服务即在远程主机和本地机器之间进行文件的拷贝,是目前一种应用较广的网络服务。

  文件传输一般也是基于Client/Server基础上的。文件传输的过程通常包括用户提出请求,建立连接,执行操作,断开连接和结束会话的过程。

  在这个程序中用到了两个Text控件。Text1控件用来输入FTP地址。Text2用来对目录列表或展示文件内容。其实现的源代码和详细注释如下:
Option Explicit
Dim TempDir As String
Private Sub Form_Load()
’保存文件的临时目录
TempDir = "d:\ftptemp\"
End Sub

’当操作状态改变时的动作
Private Sub Inet1_StateChanged(ByVal State As Integer)
Dim vtData, txtData As String
txtData = ""
Select Case State
Case icError ’出错时
Debug.Print Inet1.ResponseCode & " " _
& Inet1.ResponseInfo
Case icResolvingHost, icRequesting,                    icRequestSent
’寻找,请求或送出请求时
StatusBar1.Panels(1).Text = "正在查找..."
Case icHostResolved
StatusBar1.Panels(1).Text = "找到"
Case icReceivingResponse, icResponseReceived
StatusBar1.Panels(1).Text = "接收数据"
Case icResponseCompleted
’接到回答后,保存数据
’接收第一块
vtData = Inet1.GetChunk(1024)
’getchunk获得发送过来的数据
txtData = txtData & vtData
Do While LenB(vtData) > 0
’得到下一大块。
vtData = Inet1.GetChunk(1024, icString)
txtData = txtData & vtData
Loop
Text2.Text = txtData
StatusBar1.Panels(1).Text = "完成"
Case icConnecting, icConnected
StatusBar1.Panels(1).Text = "正在连接"
Case icDisconnecting ’无法连接
Case icDisconnected
Case Else ’其他
Debug.Print States
End Select
End Sub

’输入地址,按ENTER键确认后
Private Sub Text1_KeyPress(KeyAscii As Integer)
If KeyAscii = vbKeyReturn Then
KeyAscii = 0
On Error GoTo ErrOpen ’转入错误处理
Inet1.URL = Text1.Text ’赋予地址
Inet1.Execute "DIR" ’执行DIR命令
Form1.Caption = Inet1.URL
End If
Exit Sub
ErrOpen:
Select Case Err.Number
Case icBadUrl
MsgBox ("地址错误,请重输一遍!")
Case icConnectFailed, icConnectionAborted,
icCannotConnect
MsgBox ("网络连接失败!")
Case icExecuting
Inet1.Cancel
If Inet1.StillExecuting Then
MsgBox ("不能取消当前操作!")
Else
Resume
End If
Case Else
Debug.Print Err.Number, Err.Description
End Select
End Sub

Private Sub Text2_DblClick()
Dim mDir As String
If Text2.SelLength Then
’如果是目录,则用DIR命令
If Right(Text2.SelText, 1) = "/" Then
Text1.Text = Text1.Text & "/" & _
Left(Text2.SelText, Text2.SelLength - 1)
On Error GoTo ErrBrowse
mDir = Right(Text1.Text, Len(Text1.Text)
- Len(Inet1.URL))
Inet1.Execute , "DIR" & mDir & "/*"
’如果是文件,则获得文件内容
Else
mDir = Right(Text1.Text, Len(Text1.Text)
- Len(Inet1.URL)) & "/" & Text2.SelText
Inet1.Execute , "GET" & mDir & _
" " & TempDir & Text2.SelText
End If
End If
Exit Sub
ErrBrowse:’错误处理
If Err.Number = icExecuting Then
Inet1.Cancel
If Inet1.StillExecuting Then
MsgBox ("不能取消当前操作!")
Else
Resume
End If
Else
Debug.Print Err.Number, Err.Description
End If
End Sub 
本站仅提供存储服务,所有内容均由用户发布,如发现有害或侵权内容,请点击举报
打开APP,阅读全文并永久保存 查看更多类似文章
猜你喜欢
类似文章
【热】打开小程序,算一算2024你的财运
用VB编写异步多线程下载程序
在用PB进行开发时常常需要用到ftp功能
读取指定行数据
VB读取网页内容
VB自动登陆网络站点详解(二):Inet控件与WebBrowser控件配合使用[图]
vb学习积累
更多类似文章 >>
生活服务
热点新闻
分享 收藏 导长图 关注 下载文章
绑定账号成功
后续可登录账号畅享VIP特权!
如果VIP功能使用有故障,
可点击这里联系客服!

联系客服