Como recuperar mais de 65000 bytes no soquete C ++ usando recv ()

Estou desenvolvendo um aplicativo de servidor cliente (TCP) no Linux usando C ++. Quero enviar mais do que65,000 bytes ao mesmo tempo. No TCP, o tamanho máximo do pacote é65,535 apenas bytes.

Como posso enviar os bytes inteiros sem perda?

A seguir, meu código no lado do servido

//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;
}

Se eu usarMSG_WAITALL leva muito tempo para receber os bytes, então como posso definir o sinalizador para receber mais de 1 milhão de bytes por ve

Edit: O tamanho da MTU é de 1500 bytes, mas a limitação absoluta no tamanho do pacote TCP se 65.53

questionAnswers(8)

yourAnswerToTheQuestion