我想使用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