json tobean

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

在这里插入代码片
import java.io.*;
import java.net.ServerSocket;
import java.net.Socket;
import java.util.ArrayList;
import java.util.Date;
import static Code_conversion.bytesToHexString;

public class Receiving_message_Server extends Thread {
    
    
    public static ArrayList<Socket> sockets = new ArrayList<Socket>();
    private Socket_data_service socket_data_service = new Socket_data_serviceimpl();
    private Socket server;
    private ServerSocket serverSocket;

    public Receiving_message_Server() {
    
    
    }
    public Receiving_message_Server(int port) throws IOException {
    
    
        serverSocket = new ServerSocket(port);
    }
    public void run() {
    
    
        while (true) {
    
    
            try {
    
    
                System.out.println("等待远程连接.....");
                server = serverSocket.accept(); // 阻塞监听端口等待请求连接
                sockets.add(server);  
                System.out.println("远程主机地址:" + server.getRemoteSocketAddress());
                System.out.println("连接时间:" + new Date());
                InputStream in = server.getInputStream(); // 获取客户端发送的流
                BufferedInputStream bis = new BufferedInputStream(in);  //  流存放缓冲区
                DataOutputStream dos = new DataOutputStream(out); // 获取缓冲区流数据 
                byte[] bytes = new byte[1]; // 一次读取一个byte
                String ret = "";
                while (dis.read(bytes) != -1) {
    
    
                    ret += bytesToHexString(bytes) + " ";  //调用字节转化16进制字符串方法
                    if (dis.available() == 0) {
    
     //一个请求
                        System.out.println("收到报文数据: " + ret);
                        ret = "";
                    }
                }
                in.close();
                dos.close();
                bis.close();
                server.close();  // 关闭连接
            } catch (IOException e) {
    
    
                e.printStackTrace();
                break;
            }
        }
    }
    public static void main(String[] args) {
    
    
        int port = 8888;  // 监听端口
        try {
    
    
            Thread t = new Receiving_message_Server(port);  // 线程初始化
            t.start();
        } catch (IOException e) {
    
    
            e.printStackTrace();
        }}

在这里插入图片描述

在这里插入代码片
public class Code_conversion {
    
    

    /**
     * 二进制转换16进制字符串
     * @param bytes
     * @return
     */
    public static String bytesToHexString(byte[] bytes) {
    
    
        StringBuilder sb = new StringBuilder();
        for (int i = 0; i < bytes.length; i++) {
    
    
            String hex = Integer.toHexString(0xFF & bytes[i]);
            if (hex.length() == 1) {
    
    
                sb.append('0');
            }
            sb.append(hex);
        }
        return sb.toString();
    }


    /***
     *  16进制字符串转换二进制
     * @param hexStr
     * @return
     */
    public static byte[] parseHexStr2Byte(String hexStr) {
    
    
        if (hexStr.length() < 1)
            return null;
        byte[] result = new byte[hexStr.length() / 2];
        for (int i = 0; i < hexStr.length() / 2; i++) {
    
    
            int high = Integer.parseInt(hexStr.substring(i * 2, i * 2 + 1), 16);
            int low = Integer.parseInt(hexStr.substring(i * 2 + 1, i * 2 + 2), 16);
            result[i] = (byte) (high * 16 + low);
        }
        return result;
    }
}

猜你喜欢

转载自blog.csdn.net/weixin_44716147/article/details/117967765