winsock控件数组问题

来源:百度知道 编辑:UC知道 时间:2024/05/25 09:58:21
这段代码是我服务端的一部分,第一个客户连接的时候可以收到数据,第二个客户端连接就会报错说“当前状态的操作无效”按理说这个是控件数组 应该会动态分配可用控件,为什么却出错呢?谢谢大家指点啊
Private Sub winso1_ConnectionRequest(Index As Integer, ByVal requestID As Long)
For Index = 1 To intMax
If WinSo1(Index).State = 0 Then
Load WinSo1(Index)
Exit For
End If
Next Index
WinSo1(Index).Accept requestID
Text1.Text = "客户端ip:" & WinSo1(Index).RemoteHostIP & ",连接端口:" & WinSo1(Index).RemotePort & " 连接时间为:" & Time
WinSo1(Index).SendData secuser.Text & "----"
WinSo1(Index).SendData secpwd.Text
End Sub

有以下问题:
1.WINSOCK控件的STATE为0代表控件空闲,并非不存在
2.不建议在控件数组的事件内修改INDEX属性
3.如果只允许一个用户的话

我建议改成这样,用来WinSo1(0)监听,代码该为如下
Private Sub winso1_ConnectionRequest(Index As Integer, ByVal requestID As Long)
If WinSo1(1).State = 0 Then
WinSo1(1).Accept requestID
Text1.Text = "客户端ip:" & WinSo1(1).RemoteHostIP & ",连接端口:" & WinSo1(1).RemotePort & " 连接时间为:" & Time
WinSo1(1).SendData secuser.Text & "----"
WinSo1(1).SendData secpwd.Text
else
WinSo1(0).close
End If
End Sub