+ -
当前位置:首页 → 问答吧 → 我用winsock传档案出现错误代码40006

我用winsock传档案出现错误代码40006

时间:2011-10-31

来源:互联网

Private Sub Command11_Click()
winsock1.RemoteHost = "114.40.230.3"
winsock1.Bind 9998

On Error GoTo DoWithErr
Dim OFbyt() As Byte '读入档案的缓冲
Dim PFbyt() As Byte '档案分解的缓冲
SndFlag = 1
'旗标设为1 , 记录开始传送档案
winsock1.SendData "SendFile"
Do Until SndFlag = 2
DoEvents
Loop
'回圈的目的是等代目的端电脑有回应
'一定要有DoEvents,否则Winsock会无法接收资料
winsock1.SendData "SendFileName"
'告诉目的端,我要开始传档
Do Until SndFlag = 3
DoEvents
Loop
winsock1.SendData Text1.Text
'告诉目的端,我要传的档名
Do Until SndFlag = 4
DoEvents
Loop
winsock1.SendData "OpenFileToWrite"
'告诉目的端,开起档案,并准备写入
Do Until SndFlag = 5
DoEvents
Loop
Open Text1.Text For Binary As #1
OFbyt = InputB(LOF(1), 1)
For n = 0 To (LOF(1) / 1023)
'将档案以1023byte分成一段一段
winsock1.SendData "Command-Take"
'告诉目的端,要送出档案的某个区段
Do Until SndFlag = 6
DoEvents
Loop
PFbyt = MidB(OFbyt, n * 1023 + 1, 1023)
winsock1.SendData PFbyt
'送出档案的区段
Do Until SndFlag = 7
DoEvents
Loop
SndFlag = 5
Next
Close #1
SndFlag = 7
winsock1.SendData "TheEnd"
Do Until SndFlag = 8
DoEvents
Loop
MsgBox "传档结束"
winsock1.Close
Exit Sub
DoWithErr:
Select Case Err.Number
Case 126
Resume Next
Case Else
MsgBox "错误原因:" & Error & vbCrLf & "错误代码:" & Err.Number & vbCrLf & "中断执行"
winsock1.Close
Exit Sub
End Select
End Sub

请问我该如何解决

作者: popoty   发布时间: 2011-10-31

因为我没灌VB就直接推测!!
查询Microsoft Visual Basic显示的讯息:
引用:
Run-time error: 40006 (Run-Time 错误:40006)
"Wrong protocol or connection state for the requested transaction or request."
(「要求的异动或请求的通讯协定或连线状态错误。」)

作者: AMI2000   发布时间: 2011-11-17