Mam kilka pytań dotyczących biblioteki gniazd w C. Oto fragment kodu, do którego będę się odnosić w moich pytaniach.
char recv_buffer[3000];
recv(socket, recv_buffer, 3000, 0);
- Jak zdecydować, jak duży ma być plik recv_buffer? Używam 3000, ale to arbitralne.
- co się stanie, jeśli
recv()
otrzyma pakiet większy niż mój bufor? - Skąd mam wiedzieć, czy otrzymałem całą wiadomość bez ponownego wywoływania recv i czy czekam w nieskończoność, gdy nie ma nic do odebrania?
- Czy jest sposób, aby bufor nie miał określonej ilości miejsca, tak żebym mógł dodawać do niego dane bez obawy, że zabraknie miejsca? może za pomocą
strcat
konkatenacji najnowszejrecv()
odpowiedzi do bufora?
Wiem, że to wiele pytań w jednym, ale byłbym bardzo wdzięczny za wszelkie odpowiedzi.