久久久久久久视色,久久电影免费精品,中文亚洲欧美乱码在线观看,在线免费播放AV片

<center id="vfaef"><input id="vfaef"><table id="vfaef"></table></input></center>

    <p id="vfaef"><kbd id="vfaef"></kbd></p>

    
    
    <pre id="vfaef"><u id="vfaef"></u></pre>

      <thead id="vfaef"><input id="vfaef"></input></thead>

    1. 站長資訊網(wǎng)
      最全最豐富的資訊網(wǎng)站

      java判斷socket是否連接

      java判斷socket是否連接

      在socket類中有一個(gè)方法sendUrgentData,它會(huì)往輸出流發(fā)送一個(gè)字節(jié)的數(shù)據(jù),只要對(duì)方Socket的SO_OOBINLINE屬性沒有打開,就會(huì)自動(dòng)舍棄這個(gè)字節(jié)(在Java 中是拋出異常),而SO_OOBINLINE屬性默認(rèn)情況下就是關(guān)閉的。推薦:java視頻教程

      示例:

      public class Nksocket extends Thread{  public String ip=null;//連接服務(wù)器的IP  public Integer port=null;//連接服務(wù)器的端口  private Socket socket=null;//套節(jié)字對(duì)象  private boolean close = false; // 關(guān)閉連接標(biāo)志位,true表示關(guān)閉,false表示連接  private Integer sotimeout=1*1*10;//超時(shí)時(shí)間,以毫秒為單位  //------------------------------------------------------------------------------  public Nksocket(){     init();  }  public Nksocket(String ip,Integer port){     setIp(ip);     setPort(port);     init();  }  /** * 初始化socket對(duì)象 */  public void init(){     try {      InetAddress address = InetAddress.getByName(getIp());      socket = new Socket(address,getPort());      socket.setKeepAlive(true);//開啟保持活動(dòng)狀態(tài)的套接字      socket.setSoTimeout(sotimeout);//設(shè)置超時(shí)時(shí)間      close=!Send(socket,"2");//發(fā)送初始數(shù)據(jù),發(fā)送成功則表示已經(jīng)連接上,發(fā)送失敗表示已經(jīng)斷開     }catch(UnknownHostException e) {      e.printStackTrace();     }catch(IOException e){      e.printStackTrace();     }  }  /** * 讀數(shù)據(jù)線程 */  public void run() {     while(true){      //---------讀數(shù)據(jù)---------------------------      close = isServerClose(socket);//判斷是否斷開      if(!close){//沒有斷開,開始讀數(shù)據(jù)       String readtext = ReadText(socket);       if(readtext!=null && readtext.trim().length()>0){        System.out.println("讀取數(shù)據(jù):"+readtext);       }      }      //---------創(chuàng)建連接-------------------------      while(close){//已經(jīng)斷開,重新建立連接       try{        System.out.println("重新建立連接:"+getIp()+":"+getPort());        InetAddress address = InetAddress.getByName(getIp());        socket = new Socket(address,getPort());        socket.setKeepAlive(true);        socket.setSoTimeout(sotimeout);        close = !Send(socket,"2");        System.out.println("建立連接成功:"+getIp()+":"+getPort());       }catch(Exception se){        System.out.println("創(chuàng)建連接失敗:"+getIp()+":"+getPort());        close=true;       }      }     }  }  /** * 發(fā)送數(shù)據(jù),發(fā)送失敗返回false,發(fā)送成功返回true * @param csocket * @param message * @return */  public Boolean Send(Socket csocket,String message){     try{      PrintWriter out = new PrintWriter(socket.getOutputStream(), true);      out.println(message);      return true;     }catch(Exception se){      se.printStackTrace();      return false;     }  }  /** * 讀取數(shù)據(jù),返回字符串類型 * @param csocket * @return */  public String ReadText(Socket csocket){     try{      csocket.setSoTimeout(sotimeout);      InputStream input = csocket.getInputStream();      BufferedReader in = new BufferedReader(new InputStreamReader(input));      char[] sn = new char[1000];      in.read(sn);      String sc = new String(sn);      return sc;     }catch(IOException se){      return null;     }  }  /** * 判斷是否斷開連接,斷開返回true,沒有返回false * @param socket * @return */  public Boolean isServerClose(Socket socket){     try{      socket.sendUrgentData(0xFF);//發(fā)送1個(gè)字節(jié)的緊急數(shù)據(jù),默認(rèn)情況下,服務(wù)器端沒有開啟緊急數(shù)據(jù)處理,不影響正常通信      return false;     }catch(Exception se){      return true;     }  }  /** * 測(cè)試 * @param ags */  public static void main(String[] ags){     Nksocket nksocket = new Nksocket("127.0.0.1",8090);     nksocket.start();  }  //------------------------------------------------------------------------------  public String getIp() {     return ip;  }  public void setIp(String ip) {     this.ip = ip;  }  public Integer getPort() {     return port;  }  public void setPort(Integer port) {     this.port = port;  }  }

      贊(0)
      分享到: 更多 (0)
      網(wǎng)站地圖   滬ICP備18035694號(hào)-2    滬公網(wǎng)安備31011702889846號(hào)