Ciao e grazie per la risposta efficace. In effetti usando il tuo codice
MsgBox(Char.ConvertToUtf32(msg.Chars(msg.Length - 1), 0))
La risposta è uno zero e mi sono accorto che la lunghezza della variabile msg è sempre 1025 anche se uso il trim . Evidendemente alla variabile msg viene passato tutto il buffer di lettura che è di 1024 byte + 1 byte di non so che cosa, ma pare che i "caratteri" vuoti non siano "spazi" vuoti , altrimenti il trim li toglierebbe e la lunghezza della variabile msg sarebbe stata ridotta.
Non so se c'è una funzione oltre al trim che toglie i caratteri in eccesso, ma di quali caratteri stiamo parlando se non sono spazi vuoti?
Quando invio il messaggio uso questo codice
Dim sender As New UdpClient()
Dim groupEP As New IPEndPoint(GroupAddress, GroupPort)
Dim bytes As [Byte]() = System.Text.Encoding.ASCII.GetBytes(message)
sender.Send(bytes, bytes.Length, groupEP)
e per riceverlo uso questo:
mcastSocket = New Socket(AddressFamily.InterNetwork, SocketType.Dgram, ProtocolType.Udp)
Dim localEP As EndPoint = CType(New IPEndPoint(localIPAddr, mcastPort), EndPoint)
mcastSocket.Bind(localEP)
bytes = New [Byte](1024) {}
mcastSocket.ReceiveFrom(bytes, remoteEP)
msg = Encoding.ASCII.GetString(bytes, 0, bytes.Length)
Il problema credo sia o nell' Encoding del messaggio in uscita o in quello di entrata del messaggio, ma non ho idee
PS: Se accetto il tuo post il thread viene chiuso?