VB6中的Winsock控件仅向数组中的最后一个索引发送文本消息
这可能是一个多年来的话题,但我真的不知道如何才能做到这一点 因此,我在vb6中启动了一个项目,使用winsock控件从局域网上连接的计算机发送和接收消息 在我的项目中,我包括两个winsock控件,即con和conn。con将侦听连接请求并让conn接受请求,因此conn位于一个数组中,以接受来自客户端的多个请求VB6中的Winsock控件仅向数组中的最后一个索引发送文本消息,vb6,client-server,chat,winsock,visual-studio-6,Vb6,Client Server,Chat,Winsock,Visual Studio 6,这可能是一个多年来的话题,但我真的不知道如何才能做到这一点 因此,我在vb6中启动了一个项目,使用winsock控件从局域网上连接的计算机发送和接收消息 在我的项目中,我包括两个winsock控件,即con和conn。con将侦听连接请求并让conn接受请求,因此conn位于一个数组中,以接受来自客户端的多个请求 Private Sub con_ConnectionRequest(ByVal requestID As Long) If conn(0).State = sckClosed
Private Sub con_ConnectionRequest(ByVal requestID As Long)
If conn(0).State = sckClosed Then
conn(0).Accept requestID
Else
Load conn(socknum)
conn(socknum).Accept requestID
End If
socknum = socknum + 1
End Sub
现在连接了多个客户端,客户端可以向主机发送消息,但主机只能向conn的最后一个索引发送文本消息,或者最后连接的客户端将是唯一可以从主机接收消息的客户端
Private Sub txtSend_KeyPress(KeyAscii As Integer)
Dim n As Integer
If KeyAscii = 13 Then
If ishost = True Then
For n = 0 To conn.UBound
If conn(n).State = sckConnected Then
conn(n).SendData txtSend
End If
Next n
Else
con.SendData txtSend
End If
txtMessages.Text = txtMessages.Text & vbCrLf & txtSend.Text
End If
End Sub
我无法找出我的代码有什么问题,因此请提供一些帮助或提示,我们非常感谢。变量ishost在哪里定义? 你能把那个密码寄出去吗 另外,请张贴将值分配给ishost的代码片段
变量socknum在哪里定义? 你能把那个密码寄出去吗? socknum是否在其他地方使用 调试:在conn.UBound的n=0行上放置一个断点,并用F8逐步执行。 执行到这一行了吗? conn.UBound的值是多少