VB sockt控件数组问题 求大牛指教
写了一个简单的聊天软件。用的是tcp,一对一的已经搞定。做一对多的时候,老是提示控件数组不存在,我已经按照百度的方法改好几次了 还是不行。希望大牛给我看看、先谢谢啦。
先把代码贴下。
客户端:
Private Sub Command1_Click()
sckconnect.SendData Text1.Text
Text1.Text = ""
End Sub
Private Sub Command2_Click()
Text4.Text = ""
End Sub
Private Sub Command3_Click()
sckconnect.RemoteHost = Text2.Text
sckconnect.RemotePort = CInt(Text3.Text)
sckconnect.Connect
Form1.Command3.Enabled = False
End Sub
Private Sub Winsock1_DataArrival(ByVal bytesTotal As Long)
Dim StrData As String
sckconnect.GetData StrData
Text4.Text = Text4.Text + vbCrLf + StrData
End Sub
服务器:
Private isWinCount(100) As Boolean '定义有100个client
Private Sub Form_Load()
For I = 1 To 100 '用一个for循环创建控件数组
Load Winsock1(I)
isWinCount(100) = True '设为空闲状态
Next
Winsock1(0).LocalPort = "6000" '绑定端口
Winsock1(0).Listen '聆听状态
End Sub
Private Sub Winsock1_Close(Index As Integer)
If Index <> 0 Then '通过双目判断是否使用
isWinCount(Index) = True '而置为空闲
End If
End Sub
Private Sub Winsock1_ConnectionRequest(Index As Integer, ByVal requestID As Long)
Dim rip As String
Dim I As Integer
sip = Winsock1(0).RemoteHostIP '获得登录者的IP地址
I = 1
Do While I <= Winsock1.ubound '检查是否已经有该地址的记录
If Winsock1(I).RemoteHostIP = rip Then '如有,不必加载新的控件
Winsock1(I).Accept requestID
Exit Sub
End If
I = I + 1
Loop
Load Winsock1(I) '否则,加载新的控件
Winsock1(I).Accept requestID
End Sub
Private Sub Winsock1_DataArrival(Index As Integer, ByVal bytesTotal As Long)
Dim sdata As String
Winsock1(1).GetData sdata
For I = 1 To Winsock1.Count
If Winsock1(I).State <> sckClosed Then
Winsock1(I).SendData sdata
End If
Next I
End Sub
当开启两个客户端后提示控件数组不存在错误。 求指教。谢谢啦、