Es gibt eine Methode sendUrgentData in der Socket-Klasse, die ein Byte Daten an den Ausgabestream sendet, solange das SO_OOBINLINE-Attribut des Sockets der anderen Partei nicht aktiviert ist. Dieses Byte wird automatisch verworfen (in Java wird eine Ausnahme ausgelöst) und das Attribut SO_OOBINLINE ist standardmäßig deaktiviert.
Java bestimmt, ob die Verbindung zum Remote-Ende getrennt ist:
try{ socket.sendUrgentData(0xFF); }catch(Exception ex){ reconnect(); }
Die Verwendung von Ping zur Implementierung von
package com.csdn.test; import java.io.BufferedReader; import java.io.IOException; import java.io.InputStreamReader; public class test { static BufferedReader bufferedReader; public static void main(String[] args) throws IOException { try { Process process = Runtime.getRuntime().exec("ping 192.168.1.104");//判断是否连接的IP; bufferedReader = new BufferedReader(new InputStreamReader(process .getInputStream())); String connectionStr = ""; while ((connectionStr = bufferedReader.readLine()) != null) { System.out.println(connectionStr); } } catch (IOException e) { e.printStackTrace(); } finally { bufferedReader.close(); } } }
Ping weist einen schwerwiegenden Fehler auf, das heißt, Sie können nur feststellen, ob die andere Partei ist mit dem Netzwerk verbunden und kann nicht feststellen, ob der Client eingeschaltet ist.
Weitere Java-Kenntnisse finden Sie in der Spalte Java Basic Tutorial.
Das obige ist der detaillierte Inhalt vonJava-Methode zur Bestimmung, ob die Verbindung zum Socket unterbrochen ist. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!