私はこのような構造体を持っています:
typedef struct _HEADER_IO
{
uint8_t field1 : 2;
uint8_t field2 : 4;
uint8_t field3 : 1;
uint8_t field4 : 1;
uint16_t field5;
uint8_t field6;
} HEADER_IO;
これは基本的に、tcpを介して送信されるメッセージヘッダーです。サーバーはこれを読み取って、バッファー内でどのデータが続くかを認識します。ただし、何らかの理由でサイズが4バイト(2 + 4 + 1 +1の最初のバイト+フィールド5から2バイト+1バイトのフィールド6)であるのではなく、サイズは6バイトです。
メモリビューで検索すると、次のようになります。
XX AA XX XX XX AA
それ以外の:
XX XX XX XX
私が何をしてもAAが設定されない場所。これは、ヘッダーをサーバーに送信することを計画してsend()
いて、サーバーがヘッダーを誤って解釈するように余分なバイトが含まれているため、問題になります。私は何が間違っているのですか?