Tôi đang viết thư viện cơ sở dữ liệu sẽ phải hỗ trợ hết thời gian chờ thông minh. Bây giờ tôi đang nhìn vào kết nối tổng hợp, tôi đặc biệt lo lắng về các tình huống sau:Làm thế nào để ngăn chặn các phản hồi trễ tới một ổ cắm TCP?
- Gửi Query # 1
- Time out sau n giây.
- Gửi Query # 2
- nhận một phản ứng để truy vấn # 1
Bước bốn có thể xảy ra, bởi vì các truy vấn không được đánh dấu với một ID truy vấn: tất cả tôi biết là tôi đã nhận được một phản ứng, và tôi không biết truy vấn thuộc về nó. Người ta có thể lập luận rằng điều này cấu thành một sai lầm trong giao thức, nhưng điều đó không tùy thuộc vào tôi.
Trước khi gửi truy vấn # 2, tôi nên làm gì với ổ cắm để tránh trả lời muộn như vậy? Là cách chính xác duy nhất để shutdown()
, close()
và lại connect()
?
gì về việc thêm liên tục để các lựa chọn của tất cả các truy vấn để thư viện của bạn có thể xác định được truy vấn trả lời là gì? – T3hc13h
Đó là một ý tưởng tuyệt vời, nhưng đáng buồn là không tốt cho một thư viện. Có thể thông qua một plugin ... –