
Originally Posted by
fgp123
you need to set up a winsock array.
Firstly please if you post, write answers that you would liek to see. That helps no-one.
Ok onto the question, you are correct you need to draw 1 winsock control onto your form, which for the purposes of this post I will call Winsock. Ok then you need to set the index property to 0 hich is actually making your winsock control (winsock) an aray. Now then from here every time a new client connects you create a new winsock control to handle there connection.
Ok so the connection request method would change to this,
VB Code:
Private Sub Winsock_ConnectionRequest(Index As Integer, ByVal RequestID As Long)
Load Winsock(Winsock.UBound + 1)
Winsock(Winsock.UBound).Accept RequestID
End Sub
That simply lets multiple users connect by creating a new winsock control (+ 1 of the uBound
) each time somone trys to connect.
The next thing you will need to do is adjust your servers data arrival event
VB Code:
Private Sub Winsock_DataArrival(index As Integer, ByVal bytesTotal As Long)
Winsock(index).GetData Data
msgbox Data
end sub
A final snippet of code, is used for the server to send data to every client connected. It simply loops through checks to see if the client is connected if it is it will send data!
VB Code:
For i = 0 To Winsock.Count - 1
If Winsock(i).State = sckConnected Then
Winsock(i).SendData Data
DoEvents
End If
Next i
When moving to multiple connections the client stays the same, it is only the server and the logic that changes, the 2 links below should assist you more, if you have any more questions though please post.
http://www.winsockvb.com/article.php?article_id=18
http://www.winsockvb.com/article.php?article_id=19
Pino