建立socke

 

public void server() {
      ServerSocket serverSocket = null;
        try {
            serverSocket = new ServerSocket(9898);  //端口号
            //通过死循环开启长连接,开启线程去处理消息
            System.out.println("服务启动...");
            while (true) {
                Socket socket = serverSocket.accept();//接受客户端的连接 (阻塞处理)
                new Thread(new MyRuns(socket)).start();//接收到客户端的消息,创建线程去处理
            }
        } catch (Exception e) {
            e.printStackTrace();
        } finally {
            try {
                if (serverSocket != null) {
                    serverSocket.close();//记得关闭连接哦!
                }
            } catch (Exception e2) {
                e2.printStackTrace();
            }
        }
    }
public class MyRuns implements Runnable {
Socket socket;
        BufferedReader reader;
        BufferedWriter writer;
        public MyRuns(Socket socket) {
            super();
            this.socket = socket;
        }
        public void run() {
            Map<String, String> res = new HashMap<>();
            try {
                reader = new BufferedReader(new InputStreamReader(socket.getInputStream()));//读取客户端消息
                writer = new BufferedWriter(new OutputStreamWriter(socket.getOutputStream()));//向客户端写消息
                String mess = reader.readLine();
                System.out.println("接收的信息为:" + mess);
                if (mess != null && !"".equals(mess)) {
                    Map<String, Object> readValue = JSONObject.parseObject(mess, Map.class);
                    System.out.println(readValue.toString());
                    String XXX= readValue.get("XXX").toString();
                    res.put("res", true);
                }
            } catch (Exception e) {
                e.printStackTrace();
                res.put("res", String.valueOf(false));
                res.put("msg", e.toString());
            } finally {
                try {
                    System.out.println("运行结果:" + res);
                    writer.write(JSONObject.toJSONString(res));
                    writer.flush();
                    if (reader != null) {
                        reader.close();
                    }
                    if (writer != null) {
                        writer.close();
                    }
                    if (socket != null) {
                        socket.close();
                    }
                } catch (Exception e2) {
                    e2.printStackTrace();
                }
            }
        }
    }

 

进行连接测试

客户端(三种方式:自己写的客户端、NetAssist、SocketTest)