这可能是一个多年的话题,但我无法真正弄清楚如何做到这一点。
所以我在 vb6 中启动了一个项目,使用 winsock 控件从连接在 LAN 上的计算机发送和接收消息。
在我的项目中,我包含了两个 Winsock 控件,即 con 和 conn。con 将监听连接请求并让 conn 接受请求,因此 conn 在一个数组中接受来自客户端的多个请求
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
我无法弄清楚我的代码有什么问题,因此非常感谢您提供一些帮助或提示。