Насколько большим должен быть мой буфер recv при вызове recv в библиотеке сокетов

У меня есть несколько вопросов о библиотеке сокетов на C. Вот фрагмент кода, на который я буду ссылаться в своих вопросах.

char recv_buffer[3000];
recv(socket, recv_buffer, 3000, 0);
Как я могу решить, насколько большой сделать recv_buffer? Я использую 3000, но это произвольно.что будет еслиrecv() получает пакет больше моего буфера?как я могу узнать, получил ли я все сообщение без повторного вызова recv, и ждать ли его вечно, когда ничего не получится?Есть ли способ, которым я могу сделать буфер не иметь фиксированного объема пространства, чтобы я мог продолжать добавлять в него, не боясь нехватки места? возможно используяstrcat объединить последниеrecv() ответ на буфер?

Я знаю, что это много вопросов в одном, но я был бы очень признателен за любые ответы.

Ответы на вопрос(6)

Ваш ответ на вопрос