Tôi có một ứng dụng client-server với một máy chủ java. Nó hoạt động khá hoàn hảo, ngoại trừ sau một thời gian dài, đột nhiên, một ổ cắm vẫn treo. Ổ cắm này là một trong số rất nhiều, phần còn lại dường như vẫn hoạt động tốt, nhưng một khi nó được đưa vào socket, máy chủ chỉ đơn giản là không đi qua đường gửi. Đây là những mảnh có liên quan của mã:Java - Ổ cắm treo lạ?
Socket socket; // A normal socket
out = new PrintWriter(socket.getOutputStream(), true); // The outstream
out.println(msg + "\0"); // This command is used to send stuff, msg is a String
Không có ngoại lệ được ném, việc áp dụng dây chuyền đơn giản dường như không vượt qua dòng:
out.println(msg + "\0");
tôi biết rằng String là một tốt một, gây ra 4 hoặc 5 ổ cắm khác trước khi có thể gửi nó tốt. Cũng lưu ý rằng, theo như tôi biết, ổ cắm này có thể gửi hàng trăm tin nhắn tốt trước khi nó đột nhiên bị treo. Có ai có một đầu mối những loại lỗi tôi nên tìm kiếm?
Bạn đang chạy hệ điều hành nào? Bạn đang nói chuyện với một cái gì đó gần đó hay xa? – bmargulies
kiểm tra kích thước hàng gửi/nhận? Âm thanh như một vấn đề tôi đã trải qua gần đây, nơi bộ đệm đầy và gây ra phần còn lại của kết nối để treo. –
Bạn có chắc chắn rằng ổ cắm có một đầu đọc tích cực và nó không chỉ là bộ đệm đầy? – rsp