1. 程式人生 > 程式設計 >Java通過socket客戶端保持連線服務端實現程式碼

Java通過socket客戶端保持連線服務端實現程式碼

這篇文章主要介紹了Java通過socket客戶端保持連線服務端實現程式碼,文中通過示例程式碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友可以參考下

業務場景:現在有一個socket服務端給我們傳送資料,我們需要建立一個socket Client來連線這個socket Server,然後接受server傳送過來的資料。但是這個server可能會中斷,所以在Client要有一個while死迴圈去時刻保持與Server的連線。

package com.thinkgem.wlw.modules.test.socketdemo;

import java.io.*;
import java.net.Socket;

/**
 * @Author zhouhe
 * @Date 2019/10/14 17:41
 */
public class Client extends Thread{

  //定義一個Socket物件
  Socket socket = null;
  private static String host = "192.168.0.109";
  private static int port = 777;

  public Client() {
    try {
      //需要伺服器的IP地址和埠號,才能獲得正確的Socket物件
      socket = new Socket(host,port);
    } catch (Exception e) {
    }
  }

  @Override
  public void run() {
    //客戶端一連線就可以寫資料個伺服器了
    super.run();
    try {
      // 讀Sock裡面的資料
      InputStream s = socket.getInputStream();
      byte[] buf = new byte[1024];
      int len = 0;
      while ((len = s.read(buf)) != -1) {
        System.out.println(new String(buf,len));
      }
    } catch (Exception e) {
      System.out.println("socket連線斷開!");
    }
  }

  //函式入口
  public static void main(String[] args) {
    //需要伺服器的正確的IP地址和埠號
    while (true){
      Client clientTest = new Client();
      clientTest.start();
    }
  }
}

這裡如果找不到socket Server,會報錯,一旦找到socket Server,就會自動連線,並且接受server傳送過來的資料

以上就是本文的全部內容,希望對大家的學習有所幫助,也希望大家多多支援我們。