當我試圖發送延遲連接上的數據時,ne nevers到達服務器,也沒有在打印機上檢測到任何錯誤。這也適用於心跳系統。
我有一個半心跳系統正在運行。它的要點是如果發生錯誤,檢查「out」錯誤,但它永遠不會。我爲應用程序和服務器設置了保持活動狀態,我正在檢查out.checkError(),沒有任何內容可以檢測到持續的連接。
無論是否保持活力,都會發生同樣的事情。
創建套接字(發生在一個線程):Java/Android Dead Connection未被檢測到
Socket socket = new Socket(serverAddr, port);
socket.setKeepAlive(true);
心跳系統(也螺紋):
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