Sono nuovo al binario in C# e ho una domanda sul modo migliore per farlo. Ho un'applicazione che sto cercando di comunicare con uno specifico formato di messaggio binario. Deve iniziare con un codice esadecimale B8
e terminare con un codice esadecimale BB
, con il messaggio binario in mezzo. Qual è il modo migliore di essere in grado di prendere un buffer di byte e trasmetterlo al messaggio per un facile accesso alle proprietà del messaggio? Immagino una struttura, ma in tutta onestà non lo so davvero.Struct for serialinary message/deserialization
EDIT:
Il motivo per cui non lo voglio in binario è così che posso usare easliy i dati nella mia applicazione. Ad esempio, mi piacerebbe convertire i bit binari che rappresentano un tipo di comando in un enum. Ti piace questa (solo una rappresentazione di quello che mi piacerebbe fare):
struct CommandMessage
{
public CommandType Command { get; set; }
public object Data { get; set; }
}
enum CommandType
{
UserJoined,
MessageReceived
}
Questo è molto poco chiaro. Puoi pubblicare un esempio di ciò che stai cercando di fare? Perché hai bisogno di questo messaggio binario? Cosa fai con esso? Perché vuoi una rappresentazione in C# che non sia un 'byte []'? – Oded
Per rispondere, dovremmo capire esattamente come il messaggio è disposto nel byte [] - cioè * può * essere logicamente decompresso come una struct (che sinceramente non lo raccomando comunque). In particolare, qualsiasi contenuto 'stringa' significherà" no ". Devi anche capire la endianità di qualsiasi dato, ecc. Inoltre: in binario non c'è nulla di magico in 'BB' /' B8' - cosa intendi fare se un 'BB' o' B8' accade naturalmente all'interno di un float/int/string/guid/etc? –
aggiornato con l'esempio – LordZardeck