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
recv()
receber 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 usando
strcat
para concatenar a mais recenterecv()
resposta ao buffer?
Eu sei que há muitas perguntas em uma, mas eu aprecio muito as respostas.