Jestem nowy dla binarnego w C# i mam pytanie na najlepszy sposób, aby to zrobić. Mam aplikację, którą próbuję się komunikować, która ma określony format wiadomości binarnych. Musi rozpocząć się od kodu szesnastkowego B8
, a kończy się kodem heksadecymalnym BB
, z komunikatem binarnym pomiędzy. Jaki jest najlepszy sposób na pobranie bufora bajtów i przesłanie go do wiadomości, aby uzyskać łatwy dostęp do właściwości wiadomości? Wyobrażam sobie strukturę, ale szczerze mówiąc nie wiem.Struct dla serializacji/deserializacji wiadomości binarnych
EDIT:
Powodem nie chcę go w formacie binarnym jest tak, że mogę easliy korzystać z danych w mojej aplikacji. Na przykład chciałbym przekonwertować binarne bity, które reprezentują typ polecenia, na wyliczenie. (Tak jak to przedstawia to, co chciałbym zrobić):
struct CommandMessage
{
public CommandType Command { get; set; }
public object Data { get; set; }
}
enum CommandType
{
UserJoined,
MessageReceived
}
To jest bardzo niejasne. Czy możesz podać przykład tego, co próbujesz zrobić? Dlaczego potrzebujesz tej binarnej wiadomości? Co ty z tym robisz? Dlaczego chcesz reprezentacji C#, która nie jest "bajtem []"? – Oded
Aby odpowiedzieć na to pytanie, powinniśmy dokładnie zrozumieć, w jaki sposób wiadomość jest umieszczona w bajcie [] - tj. * Może * być logicznie rozpakowana jako struktura (co szczerze mówiąc, tak naprawdę nie polecam). W szczególności każda treść "ciąg" ma oznaczać "nie". Musisz również zrozumieć endianię jakichkolwiek danych, itd. Również: w binarnym nie ma nic magicznego na temat 'BB' /' B8' - co masz zamiar zrobić, jeśli 'BB' lub' B8' dzieje się naturalnie w float/int/string/guid/etc? –
zaktualizowano na przykład – LordZardeck