は私が持っているこのようなバイト配列:C++で配列を分割して結合する方法は?
lzo_bytep out; // my byte array
size_t uncompressedImageSize = 921600;
out = (lzo_bytep) malloc((uncompressedImageSize +
uncompressedImageSize/16 + 64 + 3));
wrkmem = (lzo_voidp) malloc(LZO1X_1_MEM_COMPRESS);
// Now the byte array has 802270 bytes
r = lzo1x_1_compress(imageData, uncompressedImageSize,
out, &out_len, wrkmem);
私は65,535バイトの下に小さな部分に分割するにはどうすればよい(バイト配列が、私がしたい一つの大きな画像で上限65,535バイトを持っているUDP経由で送信されます)それらの小さなチャンクを連続アレイに戻します。
しかし、私はUDPでこれをやりたいと思います。私は一度全体の画像を送信してから、変更されたピクセルだけを送信して、次のパケットが小さくなり、1つのUDPパケットに収まるようにします。 TCPより速く、速度が必要なため、UDPが必要です。 –
@リチャード:TCPより速く動作するこれを正しく行う接続を実装することはできません。初期の大きなチャンクを送信するためにTCP接続を開いてから、更新用にUDPを使用します(更新が失われたり破棄された場合、回復することができます; UDPパケットは失われたり破棄される可能性があります。これは、このような低レイテンシを必要とするゲームサーバーです。つまり、サウンドファイルなどはTCP経由で転送されますが、プレイヤーの位置などはUDP(CounterStrikeサーバー)経由で送信されます。 –
理論上は真です。それほど実践的ではありません。 –