SocketHandler.java 2.68 KB
package com.wmdigit.transfer;

import android.util.Log;

import com.wmdigit.transfer.domain.CommandHeader;
import com.wmdigit.transfer.domain.DataBean;
import com.wmdigit.transfer.wrapper.DataPackUtils;
import com.wmdigit.transfer.wrapper.DataPackWrapper;

import java.io.BufferedInputStream;
import java.io.DataInputStream;
import java.io.IOException;
import java.io.OutputStream;
import java.net.Socket;
import java.util.List;

public class SocketHandler implements Runnable{
    private ScaleTransferListener listener;
    private Socket socket;

    public SocketHandler(Socket socket2, ScaleTransferListener scaleTransferListener) {
        this.socket = socket2;
        this.listener = scaleTransferListener;
    }
    public void run() {
        DataPackUtils instance = DataPackUtils.getInstance();

        try {
            DataInputStream is = new DataInputStream(new BufferedInputStream(this.socket.getInputStream()));
            byte[] bytes = new byte[1600];
            boolean var4 = false;

            int read;
            while(-1 != (read = is.read(bytes))) {
                if (is.available() == 0) {
                    String hexString = bytesToHexString(bytes);
                    DataPackWrapper parse = instance.parse(bytes, read);
                    instance.setOut(parse);
                    OutputStream outputStream = null;

                    try {
                        outputStream = this.socket.getOutputStream();
                        outputStream.write(parse.getOutBytes());
                    } catch (IOException var17) {
                        var17.printStackTrace();
                    }

                    outputStream.flush();
//                    List<DataBean> beanList = parse.getBeanList();
//                    CommandHeader inHeader = parse.getInHeader();
//                    Log.d("inHeader", inHeader.toString());
//                    this.listener.pluList(beanList);
                }
            }
        } catch (IOException var18) {
            var18.printStackTrace();
        } finally {
            if (this.socket != null) {
                try {
                    this.socket.close();
                } catch (IOException var16) {
                    var16.printStackTrace();
                }
            }

        }

    }

    public static String bytesToHexString(byte[] bytes) {
        StringBuilder sb = new StringBuilder();

        for(int i = 0; i < bytes.length; ++i) {
//            Log.d("TAG", bytes[i] + "");
            String hex = Integer.toHexString(255 & bytes[i]).toUpperCase();
            if (hex.length() == 1) {
                sb.append('0');
            }

            sb.append(hex);
        }

        return sb.toString();
    }
}