首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 开发语言 > VB >

vb winsock 上载大文件有关问题

2013-01-06 
vb winsock 下载大文件问题我有一段代码是这样的。因为我要下载文件,而且是大文件,并且需要自动获得文件名。

vb winsock 下载大文件问题
我有一段代码是这样的。
因为我要下载文件,而且是大文件,并且需要自动获得文件名。
如 http://www.sohu.com/aaa/download.asp?id=5
实际上文件名是 搜狐拼音.rar (从 filename中获得)
但是我在修改 Winsock1_DataArrival 时,老是修改不正确。

请大家能否给我补充一个完整的 Winsock1_DataArrival ?
并且用数组接收变量,并保存到文件中。


Private Sub Command1_Click()
Winsock1.RemoteHost = "www.baidu.com" '设置连接的网址
Winsock1.RemotePort = 80 '设置要连接的远程端口号
Winsock1.Connect '返回与远程计算机的连接。
End Sub

Private Sub Winsock1_Connect()

Dim strCommand As String
Dim strWebPage As String

'当一个 Connect 操作完成时发生
'On Error Resume Next
strWebPage = "http://www.baidu.com/index.html" '要下载的文件
strCommand = "GET " + strWebPage + " HTTP/1.0" + vbCrLf ''GET 为FTP命令 取得文件
strCommand = strCommand + "Accept: */*" + vbCrLf '这句可以不要
strCommand = strCommand + "Accept: text/html" + vbCrLf '这句可以不要
strCommand = strCommand + vbCrLf '记住一定要加上vbCrLf
'Debug.Print strCommand '注:你可以用Debug.Print strCommand 来查看一下格式
Winsock1.SendData strCommand '给远程计算机发送数据
End Sub

Private Sub Winsock1_DataArrival(ByVal bytesTotal As Long) '取得数据时产生该事件
On Error Resume Next '在错误处理程序结束后,恢复原有的运行
Dim webData As String
Winsock1.GetData webData, vbString '检取当前的数据块
Text1.Text = Text4.Text + webData
End Sub

[解决办法]
 ReDim GotDat(0 To bytesTotal - 1)
 If FileNum = 0 Then
     FileNum = FreeFile
     On Error Resume Next
     If FileLen(FilePath) > 0 Then Kill FilePath
         Open FilePath For Binary As #FileNum
     End If
End If

 Winsock1.GetData GotDat, vbArray + vbByte
 Put #FileNum, , GotDat
'代码示例~

热点排行