java
主页 > 软件编程 > java >

Java通过socket客户端保持连接服务端的实现

2019-11-28 | 秩名 | 点击:
业务场景:现在有一个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, 0, 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发送过来的数据
原文链接:https://www.cnblogs.com/zhouheblog/p/11697848.html
相关文章
最新更新