Преобразование байтового сообщения из UDP - C#
Формулировка задачи:
Добрый день!
Подключаюсь по UDP к мультикасту и слушаю порт. Получаю битовое сообщение, которое потом могу перевести через BitConverter в string и вывести куда нибудь, встала задача это битовое сообщение распарсить, оно имеет три поля с определенным размером байт(2,2,8). Как правильнее это сделать, чтобы перевести в последующем перевести их?
В конечном итоге они имеют формат int2, int2, int8
Пример сообщения: 50 02 58 04 54 34 1a 00 00 00 00 00
Решение задачи: «Преобразование байтового сообщения из UDP»
textual
Листинг программы
[StructLayout(LayoutKind.Sequential, Pack = 1)]
unsafe struct MyStruct
{
public short A;
public short B;
public long C;
public fixed byte OptionalBytes[50];
public fixed int OptionalInts[10];
public static MyStruct Deserialize(byte[] data)
{
fixed (byte* pData = &data[0])
{
return *(MyStruct*)pData;
}
}
}