package com.wmdigit.transfer; import android.util.Log; import java.io.IOException; import java.net.ServerSocket; import java.net.Socket; public class ScaleTransfer { private final String TAG = ScaleTransfer.this.getClass().getSimpleName(); private ServerSocket serverSocket; private static class ScaleTransferHolder { public static ScaleTransfer instance = new ScaleTransfer(); private ScaleTransferHolder() { } } public static ScaleTransfer getInstance() { return ScaleTransferHolder.instance; } public void startLoadPluData(ScaleTransferListener scaleTransferListener, int port) { ThreadCacheManager.getExecutorService().execute(new Runnable() { public final void run() { String str = "Transfer"; try { serverSocket = new ServerSocket(port); Log.d(TAG, port + ""); Socket accept = null; while (true) { accept = serverSocket.accept(); System.out.println("New connection accepted " + accept.getInetAddress() + ":" +accept.getPort()); Log.i(TAG, "服务开启"); if (scaleTransferListener != null) { scaleTransferListener.onConnected(); } ThreadCacheManager.getExecutorService().execute(new SocketHandler(accept, scaleTransferListener)); } } catch (IOException e) { if (scaleTransferListener != null) { scaleTransferListener.onIOException(e.getLocalizedMessage()); } StringBuilder sb = new StringBuilder(); sb.append("Exception listening port 3001.=="); sb.append(e.getLocalizedMessage()); Log.e(str, sb.toString()); } catch (Throwable th2) { // r3.addSuppressed(th2); } } }); } public void destroy() { try { this.serverSocket.close(); } catch (IOException var2) { var2.printStackTrace(); } } }