package org.jeecg.modules.dry.socket; import com.alibaba.fastjson.JSONObject; import lombok.extern.slf4j.Slf4j; import java.io.ObjectInputStream; import java.io.ObjectOutputStream; import java.net.Socket; @Slf4j public class ServerReceiveThread implements Runnable{ private Socket socket; public ServerReceiveThread(Socket socket) { this.socket = socket; } @Override public void run() { try { //输入流接收数据 ObjectInputStream ois = new ObjectInputStream(socket.getInputStream()); //输出流发送数据 ObjectOutputStream oos = new ObjectOutputStream(socket.getOutputStream()); while (true) { String o = (String) ois.readUTF(); JSONObject jsonObject = JSONObject.parseObject(o); System.out.println(jsonObject.toJSONString()); String message = jsonObject.getString("msg"); if ("close".equals(message)) { oos.writeUTF("close"); oos.flush(); break; } else { oos.writeUTF("接收数据成功:" + message); oos.flush(); } } log.info("服务端关闭客户端[{}]", socket.getRemoteSocketAddress()); oos.close(); ois.close(); socket.close(); } catch (Exception e) { log.info("接收数据异常socket关闭"); e.printStackTrace(); } finally { log.info("数据异常数据要怎么保留"); } } }