Saya punya beberapa pertanyaan tentang perpustakaan soket di C. Ini adalah potongan kode yang akan saya rujuk dalam pertanyaan saya.
char recv_buffer[3000];
recv(socket, recv_buffer, 3000, 0);
- Bagaimana cara saya memutuskan seberapa besar untuk membuat recv_buffer? Saya menggunakan 3000, tetapi arbitrer.
- apa yang terjadi jika
recv()
menerima paket yang lebih besar dari buffer saya? - bagaimana saya bisa tahu jika saya telah menerima seluruh pesan tanpa memanggil recv lagi dan membuatnya menunggu selamanya ketika tidak ada yang diterima?
- apakah ada cara saya bisa membuat buffer tidak memiliki jumlah ruang yang tetap, sehingga saya bisa terus menambahkannya tanpa takut kehabisan ruang? mungkin menggunakan
strcat
untuk menggabungkanrecv()
respons terbaru ke buffer?
Saya tahu ada banyak pertanyaan dalam satu pertanyaan, tetapi saya akan sangat menghargai tanggapan apa pun.