Tôi có một vài câu hỏi về thư viện socket trong C. Đây là một đoạn mã tôi sẽ đề cập đến trong các câu hỏi của mình.
char recv_buffer[3000];
recv(socket, recv_buffer, 3000, 0);
- Làm cách nào để tôi quyết định mức độ lớn để tạo recv_buffer? Tôi đang sử dụng 3000, nhưng nó tùy ý.
- Điều gì xảy ra nếu
recv()
nhận được một gói lớn hơn bộ đệm của tôi? - Làm thế nào tôi có thể biết nếu tôi đã nhận được toàn bộ tin nhắn mà không gọi lại recv và nó sẽ đợi mãi khi không có gì để nhận?
- Có cách nào để tôi có thể làm cho bộ đệm không có một khoảng trống cố định, để tôi có thể tiếp tục thêm vào nó mà không sợ hết dung lượng không? có thể sử dụng
strcat
để nối cácrecv()
phản ứng mới nhất với bộ đệm?
Tôi biết đó là rất nhiều câu hỏi trong một, nhưng tôi sẽ đánh giá rất cao bất kỳ câu trả lời nào.