Buenas,
según lo que leímos y hablamos en el monitoreo entendemos que TCP es un protocolo de streaming y por ende no tenemos garantía de que con un rcv se lea lo que enviamos con un send.
Para esto vimos que hay varias soluciones, entre las cuales están agregar una cantidad fija de bytes al principio de lo que mandamos que contenga el largo del frame que queremos enviar. De esta forma leemos esta cantidad fija y si el valor de esto es N, luego leemos los siguientes N bytes completando el primer frame y repetimos el procedimiento.
La otra alternativa que consideramos es usar delimitadores, tal como hablamos en el monitoreo. Entendemos que esto es más complejo porque implica leer "ciegamente" hasta encontrar el delimitador, además de la complicación de escapar los datos de forma de que no aparezca el delimitador.
En cuanto a la primera opción: sabemos que TCP asegura que los datos que lleguen, llegan en orden, por lo que siempre leeremos primero la cantidad de bytes de "información útil" del frame. Asumiendo que podamos obtener el tamaño en bytes del frame a enviar, ¿podríamos tener algún otro problema?
En cuanto a la segunda opción: ¿qué recomiendan usar como delimitador y secuencia de escape? ¿Tiene que ser antes o después de encodear el frame?
Por último, ¿podrían decirnos en qué caso debemos notar la diferencia entre asegurarnos de leer un frame por vez y leer todo lo que hayamos mandado? ¿La resolución del video afecta esto?