¿Qué tan grande debe ser mi búfer recv al llamar a recv en la biblioteca de sockets?

Tengo algunas preguntas sobre la biblioteca de sockets en C. Aquí hay un fragmento de código al que me referiré en mis preguntas. char recv_buffer[3000]; recv(socket, recv_buffer, 3000, 0); ¿Cómo decido qué tan grande hacer recv_buffer? Estoy usando 3000, pero es arbitrario. ¿Qué sucede si...