我在服务端用以下程序发送数据文件:
    Dim FileByte() As Byte
    LenFile = FileLen(rarFile)
    ReDim FileByte(LenFile - 1)
    getFileNum = FreeFile
    sendStartTime = Timer
    Open "d:\data1.dat" For Binary As #getFileNum
    Get #getFileNum, , FileByte 
    If Winsock1.State = sckConnected Then
        Winsock1.SendData FileByte
        'DoEvents这句有还是没有似乎作用不大
    End If
    Close #getFileNum客户端用如下程序接收数据
getFileNumber = FreeFile
Open "c:\data.dat" For Binary As #getFileNumberPrivate Sub Winsock1_DataArrival(ByVal bytesTotal As Long)
Dim  FileByte() As Byte
Winsock1.GetData FileByte, vbArray + vbByte
Put #getFileNumber, , FileByte
If LOF(getFileNumber) = fileLength Then
    Close #getFileNumber
   msgbox "文件发送完成"
end if
End Sub以前一直正常,现在却发现有些机器上能成功(一台老爷笔记本),有些电脑(新台式机)老是发送到大半(多数是99%)就没有了。各位看看什么原因。
原来的程序我是用分块发送的,后来发现服务端能一次发送文件,winsock会自行拆包发送,感觉这样简单,所以用了这种模式,不知是不是这个原因