ciao,
la mia app è cos' composta:
lato server questa è in grado di accettare connessioni multiple:

codice:
Private Sub Winsock1_ConnectionRequest(Index As Integer, _
    ByVal requestID As Long)
   
    Text2.Text = Text2.Text & "Accettata connessione con : " & _
    Winsock1(Index).RemoteHostIP & vbCrLf
    ListView1.ListItems.Add , , Winsock1(Index).RemoteHostIP, 1, 3
    
    NumSockets = NumSockets + 1
    
    Load Winsock1(NumSockets)
  
    Winsock1(NumSockets).Accept requestID
    List3.AddItem Winsock1(NumSockets).Index & ": " & Winsock1(Index).RemoteHostIP & " Ora:" & Time & " " & Date
 

Label2.Caption = "Utenti in linea " & ListView1.ListItems.Count
DoEvents

Timer1.Enabled = True
Timer1.Interval = 200
End Sub

Private Sub Winsock1_DataArrival(Index As Integer, ByVal _
    bytesTotal As Long)
    Dim vtData As String
    Dim n As Integer

    Winsock1(Index).GetData vtData, vbString
    Text2.Text = Text2.Text & vtData & vbCrLf
 
 On Error Resume Next
 For n = 1 To NumSockets
 Winsock1(n).SendData "<%%<" & vtData
    ListView1.ListItems(n).ListSubItems.Add , , vtData, 1, 1
    Next
     
End Sub
lato client
questo a connessione avvenuta riceverà una lista di tutti i client connessi al server:

codice:
Private Sub Command1_Click()

On Error Resume Next
Open App.Path & "\ip.txt" For Output As #1
Close #1
Timer1.Interval = 500
Winsock1.Connect Text2.Text, Text3.Text
Label5.Caption = "Ricerca.. IP"
Timer3.Interval = 30
End Sub
codice:
Private Sub Winsock1_DataArrival(ByVal bytesTotal As Long)
Dim dati As String

Winsock1.GetData dati, vbString

 If Left(dati, 4) = "<%%<" Then
 Text1.Text = Replace$(Text1.Text & dati, "<%%<", "") & vbCrLf
 Exit Sub
 Else
 Open App.Path & "\ip.txt" For Output As #1
 Print #1, dati
 Close #1
DoEvents
Timer2.Enabled = True
Timer2.Interval = 3000
Timer3.Enabled = True
End If
bene l' applicazione funziona anche se come suggerito da qlc non ottimale.
Adesso visto che i vari client connessi al server riceveranno una lista dei client connessi, come posso fare a far sì che se un client vuole connettersi ad un altro client presente nella lista senza passare dal server, ma restando connesso al server?