using System.Net; using System.Net.Sockets; using System.Text; bool done = false; int listenPort = 49003; using(UdpClient listener = new UdpClient(listenPort)) { IPEndPoint listenEndPoint = new IPEndPoint(2130706433, listenPort); while(!done) { byte[] receivedData = listener.Receive(ref listenEndPoint); Console.Clear(); Console.WriteLine("Received broadcast message from client {0}", listenEndPoint.ToString()); Console.WriteLine("Decoded data is:"); //Console.WriteLine(Encoding.ASCII.GetString(receivedData)); Console.WriteLine(BitConverter.ToString(receivedData)); var pos = 0; var header = Encoding.UTF8.GetString(receivedData, pos, 4); pos += 5; // Including tailing 0 if (header == "DATA") // Ignore other messages { while (pos < receivedData.Length) { var id = BitConverter.ToInt32(receivedData, pos); pos += 4; try { var value = BitConverter.ToSingle(receivedData, pos); pos += 4; // var localDataRefs = DataRefs.ToArray(); // foreach (var dr in localDataRefs) // if (dr.Update(id, value)) // OnDataRefReceived?.Invoke(dr); Console.WriteLine($"Header: {header} Value: {value}"); } catch (ArgumentException ex) { } catch (Exception ex) { var error = ex.Message; Console.WriteLine(error); } } } } }