私は、バッファ内のベクトルのサイズを前にしたいと思います。しかし、私はサイズのタイプが何であるかを正確には知らない。結局、std :: size_tは固定サイズにすることはできません。私の考えでは、代わりにuint64_tを使うつもりです。バッファは次のようになります:TCPバッファにベクトル<int32_t>をシリアル化していますか?
8 bytes length | 4 bytes element1 | 4 bytes element2 | ... |
ここで、uint64_tはstd :: size_tを意味するものではありません。どんな良いアイデアも高く評価されます。
私はあなたが求めているものを理解していません。特定のエンディアンまたはフォーマットでサイズをエンコードするために4バイトまたは8バイトなどを使用する場合は、それを行います。問題は何ですか? 'size_t'を使ってサイズを保持することができます。サイズを保持できるのであれば、どのような型を使用するのですか? –
また、ポータブルであるためには、予測可能なエンディアンが得られるようにしてください。ソケット上で送信する前に、32ビットエンティティにhtonl()を使用してください。 –
@David Schwartz質問は、私はベクトルのサイズがわからないということです。私はそのサイズを保持するためにuint64_t変数を使用するだけで、この変数をバッファに書き込むことはできません。 – NiklausTseng