2022-02-17 16:36:55 +00:00
|
|
|
|
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));
|
2022-02-17 19:03:49 +00:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
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);
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
2022-02-17 16:36:55 +00:00
|
|
|
|
|
|
|
|
|
}
|
|
|
|
|
}
|