que tienen una matriz de bytes de esta manera:Cómo dividir y unir matriz en C++ para UDP?
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);
Cómo puedo dividir en partes más pequeñas debajo de 65.535 bytes (la matriz de bytes es una imagen grande que quiero enviado a través de UDP que tiene límite superior de 65.535 bytes) y luego unir esos pequeños trozos de nuevo en una matriz continua?
Pero aun así, me gustaría hacer esto con UDP. Solo envío toda la imagen una vez y luego envío solo los píxeles que han cambiado, por lo que los siguientes paquetes serán más pequeños y se ajustarán en un solo paquete UDP. Necesito UDP porque es más rápido que TCP y necesito velocidad. –
@Richard: No podrá implementar una conexión que haga esto correctamente que funcione más rápido que TCP. Abra una conexión TCP para enviar sobre el gran fragmento inicial y luego use UDP para las actualizaciones (suponiendo que si alguna de las actualizaciones se pierde o destruye, puede recuperarse de eso; los paquetes UDP pueden perderse o destruirse). Esto es lo que hacen los servidores de juegos que necesitan este tipo de baja latencia, es decir, los archivos de sonido y tales se transfieren a través de TCP, pero las posiciones de jugador y tal se transmiten a través de UDP (es decir, servidores CounterStrike). –
Verdadero en teoría. Menos en la práctica. –