vb用winsock做的服务端有时候出现40006错误
我用winsock控件数组做的服务端,一般情况下可以和客户端正常的接收发送数据,但是有时候服务端会出现“错误'40006':所需事物或请求的错误协议或连接状态”的错误,我...
我用winsock控件数组做的服务端,一般情况下可以和客户端正常的接收 发送数据,但是有时候服务端会出现“错误 '40006': 所需事物或请求的错误协议或连接状态”的错误,我百度了下知道是因为双方的连接没有正确连接客户端就发送了数据,而我的客户端也是先connect然后senddata的 ,如何有效解决这个问题呢?谢谢
展开
1个回答
展开全部
用TCP发送消息.就必须先于对方建立连接,对方必须先同意,才能发送消息
在窗体模块的最上面加上API声明
Private Declare Sub Sleep Lib "kernel32" Alias "Sleep" (ByVal dwMilliseconds As Long)
在第一次senddate之前加上:
Dim i As Long
Do Until Winsock1.State = 7 Or i > 600
i = i + 1
DoEvents
Sleep
Loop
If i >= 600 Or Winsock1.State = 7 Then
' 1分钟后,对方仍然未同意,连接超时.
End If
再进行senddate
在窗体模块的最上面加上API声明
Private Declare Sub Sleep Lib "kernel32" Alias "Sleep" (ByVal dwMilliseconds As Long)
在第一次senddate之前加上:
Dim i As Long
Do Until Winsock1.State = 7 Or i > 600
i = i + 1
DoEvents
Sleep
Loop
If i >= 600 Or Winsock1.State = 7 Then
' 1分钟后,对方仍然未同意,连接超时.
End If
再进行senddate
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询