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 serecv()
recebe um pacote maior que meu buffer?como posso saber se recebi a mensagem inteira sem chamar recv novamente e aguardar para sempre quando não houver nada a ser recebido?existe uma maneira de fazer com que um buffer não tenha uma quantidade fixa de espaço, para que eu possa continuar adicionando a ele sem medo de ficar sem espaço? talvez usandostrcat
concatenar as últimasrecv()
resposta ao buffer?Eu sei que há muitas perguntas em uma, mas eu aprecio muito as respostas.