ネットワーク(またはファイルストレージ)を介して伝送するためのバイトスワップUUIDには、標準的に受け入れられている方法がありますか? (私は、16個の生のバイトを送信したいのですが、UUIDを文字列表現に変換するのではなく)。ネットワーク上のUUIDとバイトスワップ
私は最初にUUIDを4つの32ビット整数に分割し、それぞれにhtonlそれは正しいにおいがしませんでした。 ...書き込み、その後、ntoh correpsonding前
...
uuid.time_low = htonl(uuid.time_low);
uuid.time_mid = htons(uuid.time_mid);
uuid.time_hi_and_version = htons(uuid.time_high_and_version);
/* other fields are represented as bytes and shouldn't be swapped */
....
他端に読んだ後に呼び出します。
typedef struct {
unsigned32 time_low;
unsigned16 time_mid;
unsigned16 time_hi_and_version;
unsigned8 clock_seq_hi_and_reserved;
unsigned8 clock_seq_low;
byte node[6];
} uuid_t;
それを行うことが正しいでしょう:UUIDは、(RFC 4122から)の内部構造を有しています?
ありがとうございました。
ありがとうございました。私は両端をコントロールしています。内部でホストの順序を選択するので、time_lowがリトルエンディアンで0x01020304と初期化され、ネットワーク経由で送信されると、もう一方の端でビッグエンディアンの値は0x01020304になります。 –