Ciao
Quello che vuoi fare non è molto diverso dalle soluzioni che già ti sono state proposte. Puoi costruire la stringa con uno stringbuilder oppure inserirla già codificata nell'applicazione, quindi dopo averla inviata coi socket e ricevuta dall'altra parte usi il metodo String.Split per ottenere i vari valori.
Ecco un esempio col codice:
'Lato server:
'La stringa contiene tutti gli header separati da spazi
Dim headers As String = "Luce Alimentatore Altro1 Altro2 Ecc"
Sub SendHeaders(ByVal clientIP As String, ByVal port As Integer)
'Crea il socket
Dim sock As New Socket(AddressFamily.InterNetwork, SocketType.Stream, ProtocolType.Tcp)
'Associa il socket (necessario per poter usare listen)
sock.Bind(New IPEndPoint(IPAddress.Any, 800))
'Resta in attesa di connessioni da parte del client
sock.Listen(-1)
'Accetta la connessione dal client e ottiene il
'socket usato per la comunicazione
Dim connSock As Socket = sock.Accept()
'Ottiene la stringa come array di byte
Dim data As Byte() = Encoding.ASCII.GetBytes(headers)
'Invia i dati
connSock.Send(data, SocketFlags.None)
'Chiude i socket
sock.Close()
connSock.Close()
End Sub
'Lato client:
Sub ReciveHeaders(ByVal serverIP As String, ByVal port As Integer)
'Crea il socket
Dim sock As New Socket(AddressFamily.InterNetwork, SocketType.Stream, ProtocolType.Tcp)
'Connette il socket all'indirizzo del server
sock.Connect(serverIP, port)
'L'array dove vengono ricevuti i dati
Dim data(100) As Byte
'Riceve i dati come array di byte
sock.Receive(data, SocketFlags.None)
'Converte i byte in una stringa
Dim headers As String = Encoding.ASCII.GetString(data)
'Chiude il socket
sock.Close()
'Splitta la stringa nei vari headers
Dim str As String() = headers.Split(" ")
'Assegna a ogni groupbox il proprio header:
Me.GroupBox1.Text = str(0)
Me.GroupBox2.Text = str(1)
Me.GroupBox3.Text = str(3)
'ecc
End Sub
Luca