Private Sub SWinsock1_DataArrival(ByVal bytesTotal As Long)
Dim bytData() As Byte
Dim f
f = FreeFile
Dim strFileName As String
strFileName = "D:\c.zip"
Open strFileName For Binary As #f
ReDim bytData(1 To bytesTotal)
SWinsock1.GetData bytData
Put #f, i, bytData
i = i + bytesTotal '保证每次写都是在文件的末尾, i是个全局变量
Close #f
End Sub
真搞不懂,这个i到底是哪儿来的,是文件中记录的起始位置,对么??怎样定义?dim i as integer???然后i=1???定义在哪儿啊?

解决方案 »

  1.   

    你的程序不应该这样写不用每次都重新打开。f定义为模块级变量。
    完整的代码如下。private sub OpenFile()
      f = FreeFile
      Dim strFileName As String
      strFileName = "D:\c.zip"
      Open strFileName For Binary As #f
    End sub
    private sub CloseFile()
      Close #f
    end sub
    Private Sub SWinsock1_DataArrival(ByVal bytesTotal As Long)
    Dim bytData() As Byte
    ReDim bytData(1 To bytesTotal)
    SWinsock1.GetData bytData
    Put #f, , bytData
    End Sub关闭文件应该在接收完成后。