• 技术文章 >Java >Java基础

    java判断socket是否断开的方法

    尚2019-12-27 16:51:28原创1684

    socket类中有一个方法sendUrgentData,它会往输出流发送一个字节的数据,只要对方Socket的SO_OOBINLINE属性没有打开,就会自动舍弃这个字节(在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的方法有个严重的BUG,就是你只能判断对方是否连接网络,而不能判断客户端是否开启。

    更多java知识请关注java基础教程栏目。

    以上就是java判断socket是否断开的方法的详细内容,更多请关注php中文网其它相关文章!

    声明:本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn核实处理。
    专题推荐:java socket
    上一篇:java数据库中文乱码解决方法 下一篇:自己动手写 PHP MVC 框架(40节精讲/巨细/新人进阶必看)

    相关文章推荐

    • java线程的几种状态是什么• java 类是怎么加载的• java的sdk是什么• java判断两个日期是否同一天的方法
    1/1

    PHP中文网