Winsock编程的套接字不成块错误
本人在前一段使用Vb6.0编写一个网络程序(局域网),使用了Winsock控件,同时允许最多50个client同时登录,一开始还可以(指用了一段时间),不过现在,发现服务端经常出现关于Winsock的10035(套接字不成块)错误,出这个错后,所有的client与server的通讯就断了,必须从新启动SERVER的服务,我用的是TCP协议,根据观察,出现这个错是两个client几乎同时连接的时候容易出现,因为我是用一个server(0) l诊听,有新连接就load 一个sock,不知道有什么问题请高手们指点指点!在下不胜感激!!
--------------代码如下
Private Sub Server_ConnectionRequest(Index As Integer, ByVal requestID As Long)
Dim i As Integer
Dim SConnIP As String
Dim dcount As Integer
dcount = 0
If Index = 0 Then
SConnIP = Server(0).RemoteHostIP
If Not SecurityCheck(lsSetupParamet.mSecurity, SConnIP) Then Exit Sub
For i = 1 To Server.Count - 1
If Server(i).RemoteHostIP = SConnIP And Server(i).State = sckConnected Then
CloseSock i
Exit For
End If
Next i
For i = 1 To Server.Count - 1
If Server(i).State = sckClosed Then
dcount = i
Exit For
End If
Next i
If dcount = 0 Then
dcount = Server.Count
Load Server(dcount)
End If
Server(dcount).Accept requestID
xSockSendata (dcount), "LOGIN_ "
End If
End Sub
[解决办法]
这个vb暂时没办法解决的,建议你在ConnectionRequest里面加On error。。。。处理错误