Tôi đã viết một máy chủ thực hiện IO không chặn bằng cách sử dụng API Java NIO. Tôi thấy một tình huống mà thỉnh thoảng một ứng dụng khách tắt đột ngột (ví dụ: do mất điện) và kết nối được mở ở phía máy chủ.NIO - Phát hiện kết nối đã đóng
Một đồng nghiệp đã gặp phải vấn đề tương tự và nói rằng anh ấy sử dụng nhịp đập trái tim trên đường dây để phát hiện loại điều này, nhưng tôi hy vọng có một cách dễ dàng hơn. Đã có người khác gặp phải vấn đề này?
Một số thông tin bổ sung: Thiết kế máy chủ hiện tại của tôi sẽ hủy khóa và đóng kênh tương ứng nếu kênh đó bắt được IOException
khi thử thao tác đọc/ghi. Cách tiếp cận này dường như hoạt động 99% thời gian; Tôi đã chỉ nhìn thấy một số ít các tình huống mà kết nối dường như được mở ra.
Cảm ơn ZZ Coder - Đó là những gì tôi nghĩ (đáng sợ). Tôi khá ngạc nhiên rằng đây không phải là một tính năng của TCP. – Adamski
Một "ping" thay vào đó, các ứng dụng này không phải là con người - bạn biết đấy. –