преобразовать сложную структуру в байтовый массив в C # - PullRequest
1 голос
/ 20 марта 2012

Это определение моих структур

    public struct SPMSifHdr
    {
        public UInt32 ui32Synch1;
        public UInt32 ui32Synch2;
        public ushort ui16Version;
        public UInt32 ui32Cmd;
        public UInt32 ui32BodySize;
    };

    struct SPMSifReturnKcdLclMsg
    {
        public SPMSifHdr hdr1;
        public char ff;
        public char[] Dta;
        public bool Debug;
        public char[] szOpId;
        public char[] szOpFirst;
        public char[] szOpLast;
    }

Как преобразовать структуру SPMSifReturnKcdLclMsg в массив байтов для отправки через tcp / ip?
Прости мой язык, я не очень хорошо говорю по-английски: p

1 Ответ

3 голосов
/ 20 марта 2012
Socket socket = OpenSocket();
using (var stream = new NetworkStream(socket))
{
    var formatter = new BinaryFormatter();
    formatter.Serialize(stream, obj); 
}

РЕДАКТИРОВАТЬ:
Забыл упомянуть, что ваши структуры должны быть помечены как Serializable

...