建立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)