Wie groß sollte mein recv-Puffer sein, wenn ich recv in der Socket-Bibliothek aufrufe?

Ich habe ein paar Fragen zur Socket-Bibliothek in C. Hier ist ein Codeausschnitt, auf den ich in meinen Fragen verweisen werde.

char recv_buffer[3000];
recv(socket, recv_buffer, 3000, 0);
Wie entscheide ich, wie groß recv_buffer gemacht werden soll? Ich benutze 3000, aber es ist willkürlich.was passiert wennrecv() empfängt ein Paket, das größer als mein Puffer ist?wie kann ich wissen, ob ich die gesamte Nachricht erhalten habe, ohne erneut recv aufzurufen, und muss sie ewig warten, bis nichts mehr zu empfangen ist? Gibt es eine Möglichkeit, einen Puffer so zu gestalten, dass kein fester Speicherplatz mehr zur Verfügung steht, sodass ich ihn immer wieder erweitern kann, ohne befürchten zu müssen, dass mir der Speicherplatz ausgeht? vielleicht mitstrcat um das neueste @ zu verkettrecv() Antwort auf den Puffer?

Ich weiß, es sind viele Fragen in einer, aber ich würde mich über jede Antwort sehr freuen.

Antworten auf die Frage(12)

Ihre Antwort auf die Frage