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

vb winsock 下载大文件有关问题

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

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

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

VB code
Private Sub Command1_Click()Winsock1.RemoteHost = "www.baidu.com" '设置连接的网址Winsock1.RemotePort = 80 '设置要连接的远程端口号Winsock1.Connect '返回与远程计算机的连接。End SubPrivate Sub Winsock1_Connect()Dim strCommand As StringDim strWebPage As String'当一个 Connect 操作完成时发生'On Error Resume NextstrWebPage = "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 SubPrivate Sub Winsock1_DataArrival(ByVal bytesTotal As Long) '取得数据时产生该事件On Error Resume Next '在错误处理程序结束后,恢复原有的运行Dim webData As StringWinsock1.GetData webData, vbString '检取当前的数据块Text1.Text = Text4.Text + webDataEnd 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
'代码示例~

热点排行