Когда я пытаюсь отправить данные на затянувшееся соединение, он не приходит на сервер и не обнаруживает ошибок в записи. Это относится и к системе сердечного ритма.
У меня работает система полу-сердцебиения. Дело в том, чтобы проверить ошибку «out», если это произойдет, но это никогда не происходит. У меня есть setKeepAlive для приложения и сервера, я проверяю out.checkError(), ничто не обнаруживает затяжное соединение.
С или без сохранения происходит то же самое.
Оправа Создание (происходит в потоке):Java/Android Мертвое соединение не обнаружено
Socket socket = new Socket(serverAddr, port);
socket.setKeepAlive(true);
Heart Beat System (также резьбовой):
public void heartbeat(){
new Thread(new Runnable() {
public void run() {
while(connected == true){
try{
Thread.sleep(120000);
}catch (Exception e){
}
handlerObject.sendMessage(String.valueOf((char) 1));
}
}
}).start();
}
Отправить сообщение определяются как:
public void sendMessage(String data){
try {
PrintWriter out = new PrintWriter(socket.getOutputStream());//, true);
out.println(data + "\r\n");
out.flush();
if(out.checkError()) {
socket.close();
}
}catch (Exception e){
try{
socket.close();
} catch (Exception z){
}
}
}
Это не так. Соединение работает нормально. Он просто в конечном итоге становится невосприимчивым, и на стороне приложения не возникают ошибки. – TheMoop456