如何在VB6上使用winsock制作的套接字服务器上处理多个客户端?
我使用winsock在VB6中制作了这个非常简单的聊天应用程序,但正如您所看到的,它只接受一个连接,如何处理多个用户?谢谢如何在VB6上使用winsock制作的套接字服务器上处理多个客户端?,vb6,winsock,Vb6,Winsock,我使用winsock在VB6中制作了这个非常简单的聊天应用程序,但正如您所看到的,它只接受一个连接,如何处理多个用户?谢谢 Private Sub Winsock1_Close() ' Finaliza la conexión Winsock1.Close txtLog = txtLog & "*** Desconectado" & vbCrLf End Sub Private Sub Winsock1_ConnectionRequest(ByVal
Private Sub Winsock1_Close()
' Finaliza la conexión
Winsock1.Close
txtLog = txtLog & "*** Desconectado" & vbCrLf
End Sub
Private Sub Winsock1_ConnectionRequest(ByVal requestID As Long)
If Winsock1.State <> sckClosed Then
Winsock1.Close ' close
End If
Winsock1.Accept requestID
txtLog = "Cliente conectado. IP : " & _
Winsock1.RemoteHostIP & vbCrLf
End Sub
Private Sub Winsock1_DataArrival(ByVal bytesTotal As Long)
Dim dat As String
Winsock1.GetData dat, vbString
txtLog = txtLog & "Cliente : " & dat & vbCrLf
End Sub
Private Sub Winsock1\u Close()
“最后敲定康涅西翁酒店
Winsock1。关闭
txtLog=txtLog&“***Desconectado”&vbCrLf
端接头
私有子Winsock1_ConnectionRequest(ByVal requestID尽可能长)
如果Winsock1.State sckClosed,则
Winsock1.Close“Close”
如果结束
Winsock1.Accept requestID
txtLog=“Cliente conectado.IP:&”_
Winsock1.RemoteHostIP和vbCrLf
端接头
私有子Winsock1_数据到达(ByVal ByTestTotal长度)
作为字符串的Dim dat
Winsock1.GetData dat,vbString
txtLog=txtLog&“客户:”&dat&vbCrLf
端接头
解决方案是拥有一个Winsock对象数组,并在运行时创建一个新的Winsock对象。您创建的新对象接受连接请求
因此,在连接请求子节点中,您将有一个新的套接字:
Dim ConnectionCount as long
Private Sub Winsock1_ConnectionRequest(ByVal requestID As Long)
ConnectionCount=ConnectionCount+1
Load Winsocks(ConnectionCount)
Winsocks(ConnectionCount).Accept(requestID)
txtLog = "Cliente conectado. IP : " & _
Winsocks(ConnectionCount).RemoteHostIP & vbCrLf
End Sub
编辑:以下是一个教程,它可能比我的代码更能帮助您:
它遵循同样的想法。谢谢@Brad,但是我如何创建Winsock数组?在表单上创建Winsock控件,并将其索引设置为0。这使其成为控制阵列的一部分。