If Len(Dir(DstPath)) > 0 Then Kill DstPath End If Open DstPath For Binary As #FL wsk.SendData "Msg_OkS"
Case "Msg_Rec" 'Block Received '''''已经接收完可以继续接收的条件 IsReceived = True Case "Msg_OkS" SendMsg Case Else Put #FL, , RecBuffer
wsk.SendData "Msg_Rec" End Select
Exit Sub ShowErr: MsgBox Err.Description Exit Sub End SubPrivate Sub SendMsg() Dim BufFile() As Byte Dim LnFile As Long Dim nLoop As Long Dim nRemain As Long Dim Cn As Long
On Error GoTo ShowErr ''''''''每次一K If LnFile > 1024 Then nLoop = Fix(LnFile / 1024)
nRemain = LnFile Mod 1024 Else nLoop = 0 nRemain = LnFile End If
Open SrcPath For Binary As #1 If nLoop > 0 Then For Cn = 1 To nLoop ReDim Preserve BufFile(0 To 1023) As Byte Get #1, , BufFile wsk.SendData BufFile IsReceived = False While IsReceived = False DoEvents Wend Next If nRemain > 0 Then
ReDim Preserve BufFile(0 To nRemain - 1) As Byte Get #1, , BufFile wsk.SendData BufFile IsReceived = False While IsReceived = False DoEvents Wend End If Else
ReDim Preserve BufFile(0 To nRemain - 1) As Byte Get #1, , BufFile wsk.SendData BufFile IsReceived = False While IsReceived = False DoEvents Wend End If wsk.SendData "Msg_Eof_" 'end of file tag Close #1 Exit SubShowErr: MsgBox Err.Description
Private Sub wsk_DataArrival(ByVal bytesTotal As Long)
Dim RecBuffer As String
On Error GoTo ShowErr wsk.GetData RecBuffer
Select Case Left(RecBuffer, 7)
Case "Msg_Eof"
Close #FL
wsk.Close
Case "Msg_Dst"
''''记录存储路径
DstPath = App.Path + Right(RecBuffer, Len(RecBuffer) - 8)
FL = FreeFile
If Len(Dir(DstPath)) > 0 Then
Kill DstPath
End If Open DstPath For Binary As #FL
wsk.SendData "Msg_OkS"
Case "Msg_Rec" 'Block Received
'''''已经接收完可以继续接收的条件
IsReceived = True Case "Msg_OkS"
SendMsg
Case Else
Put #FL, , RecBuffer
wsk.SendData "Msg_Rec"
End Select
Exit Sub
ShowErr:
MsgBox Err.Description
Exit Sub
End SubPrivate Sub SendMsg()
Dim BufFile() As Byte
Dim LnFile As Long
Dim nLoop As Long
Dim nRemain As Long
Dim Cn As Long
On Error GoTo ShowErr
''''''''每次一K
If LnFile > 1024 Then
nLoop = Fix(LnFile / 1024)
nRemain = LnFile Mod 1024
Else
nLoop = 0
nRemain = LnFile
End If
Open SrcPath For Binary As #1
If nLoop > 0 Then
For Cn = 1 To nLoop
ReDim Preserve BufFile(0 To 1023) As Byte
Get #1, , BufFile
wsk.SendData BufFile
IsReceived = False
While IsReceived = False
DoEvents
Wend
Next If nRemain > 0 Then
ReDim Preserve BufFile(0 To nRemain - 1) As Byte
Get #1, , BufFile
wsk.SendData BufFile
IsReceived = False
While IsReceived = False
DoEvents
Wend
End If
Else
ReDim Preserve BufFile(0 To nRemain - 1) As Byte
Get #1, , BufFile
wsk.SendData BufFile
IsReceived = False
While IsReceived = False
DoEvents
Wend
End If
wsk.SendData "Msg_Eof_" 'end of file tag
Close #1
Exit SubShowErr:
MsgBox Err.Description
End Sub