最简单的一个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, 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发送过来的数据

posted @ 2019-10-18 13:36  农名工进城  阅读(3354)  评论(0编辑  收藏  举报