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