소켓 클래스에 sendUrgentData 메서드가 있습니다. 이 메서드는 상대방 소켓의 SO_OOBINLINE 속성이 다음과 같은 경우 1바이트의 데이터를 출력 스트림으로 보냅니다. 켜져 있지 않으면 바이트가 자동으로 삭제되고(Java에서는 예외가 발생함) SO_OOBINLINE 속성은 기본적으로 꺼져 있습니다.
java는 원격 끝의 연결이 끊어졌는지 확인합니다.
try{ socket.sendUrgentData(0xFF); }catch(Exception ex){ reconnect(); }
ping을 사용하여 구현
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 방법에 심각한 버그가 있습니다. 상대방이 네트워크에 연결되어 있는지 여부만 확인할 수 있으며 클라이언트가 켜져 있는지 여부는 확인할 수 없습니다.
자바에 대한 더 많은 지식은 java 기본 튜토리얼 칼럼을 주목해주세요.
위 내용은 소켓 연결이 끊어졌는지 확인하는 Java 메서드의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!