私はいくつかの構造体が異なるオペレーティングシステム(TCPネットワーク)を介して送信するように定義しました。 定義構造:C言語で正しいパディングとエンディアンでソケット上に構造体を送信
struct Struct1 { uint32_t num; char str[10]; char str2[10];}
struct Struct2 { uint16_t num; char str[10];}
typedef Struct1 a;
typedef Struct2 b;
データはテキストファイルに保存されます。 データフォーマットのようなある:
- パイ
- クラスト
Struct1 Aは3つの別々のパラメータとして格納されています。しかし、struct2は、2番目と3番目の両方の行がchar str []に格納された2つの独立したパラメータです。問題は、複数のネットワークを介してサーバーに書き込むときに、データが正しく受信されないことです。構造内のさまざまなパラメータを分離する多数のスペースがあります。サーバーに書き込むときに、適切な送信と埋め込みを保証するにはどうすればよいですか?データを正しく保存するには(動的バッファまたは固定バッファ)?
書き込みの例:write(fd、&、sizeof(typedef struct a));これは正しいです?
- 123(、)
- 0(パイ)
- 0(クラスト)
正しい出力
123:
問題struct2用側出力を受け取ります(パイ、クラスト)
送信と受信に使用するコードのスニペットを投稿する必要があります。間違っていることは実際には推測できません。 – Mat
[RFC 4506 XDR:外部データ表現標準](http://tools.ietf.org/html/rfc4506.html)で、マシン間の転送用にデータをエンコードする方法について説明しています。 –