Tôi có ba ứng dụng nói chuyện với nhau bằng cách sử dụng ổ cắm. Tất cả họ đều có thể sống trên máy của mình nhưng họ cũng có thể dùng chung máy. Ngay bây giờ tôi đang có hai trong số họ trên cùng và thứ ba trên máy tính của mình. Tôi đang cố gắng để làm cho thông tin liên lạc bullet của tôi bằng chứng vì vậy tôi rút cáp và giết các ứng dụng để đảm bảo tất cả mọi thứ hoạt động như dự định.Điều gì sẽ xảy ra với ổ cắm khi tôi rút cáp mạng?
Dưới đây là một phác thảo nhanh chóng của các điều:
alt text http://i40.tinypic.com/9vch86.png
Bây giờ, khi tôi tháo cáp mạng để PC2 (kết nối đỏ "Côn B"), kết nối nội bộ ngừng nói chuyện (kết nối màu xanh "Con A"). Tôi gửi nội dung từ "Ứng dụng 1" trên ổ cắm không bao giờ được đưa vào "Ứng dụng 2".
Tôi đã thực hiện một cơ chế phát hiện ra điều này và ngắt kết nối rồi kết nối lại và sau đó tôi có thể tháo cáp tất cả những gì tôi muốn và "Con A" chỉ hoạt động. Đó chỉ là lần đầu tiên.
Tôi đã xác nhận có liên lạc qua "Con A" trước khi ngắt kết nối "Con B".
Tôi kết nối và kết nối lại chính xác theo cùng một cách, đó là cùng một mã, vì vậy không có sự khác biệt.
Điều gì đang xảy ra?
Thông tin bổ sung được tìm kiếm theo câu trả lời: PC 1 và PC 2 chia sẻ địa chỉ xuống byte cuối cùng.
Tôi có cơ chế lưu giữ nội bộ, tôi gửi tin nhắn và mong đợi phản hồi cứ 10 giây một lần.
Khi tôi giết ứng dụng 3, điều này không xảy ra, chỉ khi rút cáp.
Thật không may điều này sẽ không giúp bạn tiết kiệm không bao giờ được thông báo nếu bạn chỉ đang chờ dữ liệu. Nếu không có một keepalive có thể không có thông báo OOB của peer peer-socket tình trạng không thể được sử dụng để phát hiện một điều kiện thất bại mà không cần gửi đầu tiên() ing một cái gì đó. Đây là lý do tại sao keepalives là soo quan trọng. – Einstein