Cómo recibir más de 65000 bytes en el socket C ++ usando recv ()

Estoy desarrollando una aplicación de servidor cliente (TCP) en Linux usando C ++. Quiero enviar más de65,000 bytes al mismo tiempo. En TCP, el tamaño máximo del paquete es65,535 bytes solamente.

¿Cómo puedo enviar todos los bytes sin pérdida?

Siguiente es mi código en el lado del servidor.

//Receive the message from client socket
if((iByteCount = recv(GetSocketId(), buffer, MAXRECV, MSG_WAITALL)) > 0) 
{
     printf("\n Received bytes %d\n", iByteCount);

     SetReceivedMessage(buffer);
     return LS_RESULT_OK;
}

Si usoMSG_WAITALL toma mucho tiempo recibir los bytes, entonces, ¿cómo puedo configurar el indicador para recibir más de 1 millón de bytes a la vez?

Edit: el tamaño de MTU es de 1500 bytes, pero la limitación absoluta en el tamaño del paquete TCP es de 65.535.

Respuestas a la pregunta(8)

Su respuesta a la pregunta