Qual deve ser o tamanho do meu buffer de recv ao chamar recv na biblioteca de soquetes

Eu tenho algumas perguntas sobre a biblioteca de soquetes no C. Aqui está um trecho de código ao qual me referirei nas minhas perguntas. char recv_buffer[3000]; recv(socket, recv_buffer, 3000, 0); Como decido qual o tamanho do recv_buffer? Estou usando 3000, mas é arbitrário. o que acontece se...