我使用winsock在VB6中创建了这个非常简单的聊天应用程序,但是你可以看到它只接受一个连接,我该如何处理多个用户?谢谢!
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
答案 0 :(得分:2)
解决方案是拥有一个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
修改:这是一个可能比我的代码更有帮助的教程:http://www.devx.com/tips/Tip/5488
它遵循相同的想法。