Heim  >  Artikel  >  Java  >  Java ermittelt, ob die Verbindung zum Socket-Server getrennt ist

Java ermittelt, ob die Verbindung zum Socket-Server getrennt ist

王林
王林Original
2020-01-16 09:18:003199Durchsuche

Java ermittelt, ob die Verbindung zum Socket-Server getrennt ist

Sie können die sendUrgentData-Methode in der Socket-Klasse verwenden. Diese Methode sendet ein Byte an Daten an den Ausgabestream, solange das SO_OOBINLINE-Attribut des Sockets der anderen Partei nicht aktiviert ist aktiviert, wird dieses Byte automatisch verworfen und das Attribut SO_OOBINLINE ist standardmäßig deaktiviert.

Der folgende Codeteil kann also ermitteln, ob die Verbindung zum entfernten Ende unterbrochen wurde:

try{
    socket.sendUrgentData(0xFF);
}catch(Exception ex){
    reconnect();
}

(Kostenloses Teilen von Lernvideo-Tutorials: Java-Video-Tutorial)

Verwenden Sie Ping, um Folgendes zu implementieren:

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();
		}
	}
}

Hinweis: Diese Methode weist einen schwerwiegenden Nachteil auf, dh Sie können nur beurteilen, ob die andere Partei mit dem Netzwerk verbunden ist, nicht jedoch, ob der Client aktiviert ist An.

Tatsächlich wird beim Senden und Empfangen von Informationen an den Client über die Streams socket.getoutstream und socket.getinputstream eine Ausnahme ausgelöst, wenn der Socket nicht verbunden ist. Aus diesem Grund muss für Java eine Netzwerkprogrammierung geschrieben werden in inside try, also schreiben Sie einfach die Client-Exit-Verarbeitung in Catch.

Empfohlene verwandte Artikel und Tutorials: Java-Einführungs-Tutorial

Das obige ist der detaillierte Inhalt vonJava ermittelt, ob die Verbindung zum Socket-Server getrennt ist. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn