我想使用Winsock来下载一些文件并保存它们。 在我的情况下,我有一个MSHFlexGrid 2列:一个与URL和另一个“路径+文件名”(其中文件将被保存)。 我通过遍历所有的行调用一个函数:Winsock下载文件 - vb6
Public Function DownloadSock(ArqURL As String, ArqDestino As String) As Boolean
'ArqURL is the file URL
'ArqDestino is where the downloaded file is going to be stored, in my hard disc
Dim arquivo() As Byte
Dim ficheiroID As Integer
ficheiroID = FreeFile
On Error GoTo Trata_erro
Open ArqDestino For Binary Access Write As #ficheiroID
Me.Winsock1.Connect ArqURL, 80
Me.Winsock1.GetData arquivo()
Put #ficheiroID, , arquivo()
Close #ficheiroID
DownloadSock = True
Exit Function
Trata_erro:
MDIForm1.Text1 = MDIForm1.Text1 & "Error! " & Err.Number & Err.Description & " - " & Err.Source & " - URL: " & ArqURL & " - Destino: " & ArqDestino & vbNewLine
DownloadSock = False
End Function
我得到这个错误
40006:错误的协议或连接 状态所要求的交易或 要求
我在做什么错?
谢谢
这种方法将保持一切异步,同时避免需要调用'DoEvents'等待'Winsock.State'来改变。在处理由使用它的代码造成的太多难以调试的问题之后,我对“DoEvents”特别谨慎,所以我倾向于不惜一切代价避免它,即使看起来像实现一个简单的方法忙等待循环。 – 2009-10-05 05:22:59