Đây là kết quả từ chương trình của tôiTôi đang gửi gói UDP từ localhost đến localhost và chạy trên các gói đôi khi thả. Làm thế nào để tôi ngừng điều này và tại sao nó lại xảy ra?
sending agent update
Created new player
Identified
sending agent update
Physics: 2 ticks this frame
time= 200
time= 300
***Packet Dropped: 2:10 ***
***Packet Dropped: 2:11 ***
***Packet Dropped: 2:12 ***
***Packet Dropped: 2:13 ***
***Packet Dropped: 2:14 ***
***Packet Dropped: 2:15 ***
***Packet Dropped: 2:16 ***
***Packet Dropped: 2:17 ***
***Packet Dropped: 2:18 ***
***Packet Dropped: 2:19 ***
***Packet Dropped: 2:20 ***
***Packet Dropped: 2:21 ***
time= 400
Physics: 2 ticks this frame
time= 500
Physics: 2 ticks this frame
gửi các gói tin từ máy chủ địa phương đến máy chủ địa phương, các gói tin được thả. Điều này chỉ xảy ra gần đầu. 10 gói dữ liệu đầu tiên có được thông qua, sau đó các gói sau khi thả. 5 đến 40 gói liên tiếp. Sau đó, các gói dừng lại.
Có lý do nào để điều này xảy ra không?
Cập nhật:
Các mã sau đây khắc phục vấn đề.
int buffsize = 65536; // 65536
setsockopt(socket, SOL_SOCKET, SO_RCVBUF, (void*)&buffsize, sizeof(buffsize));
Tôi đã gửi gói quá nhanh và vượt quá bộ đệm nhận mặc định của cửa sổ, chỉ 8 KB. Việc tăng kích thước bộ đệm đã khắc phục được sự cố.
Khó nói mà không thấy mã. Quá nhiều ẩn số. –