diff --git a/src/app/src/main/java/com/sbw/atrue/Order/Util/listen.java b/src/app/src/main/java/com/sbw/atrue/Order/Util/listen.java new file mode 100644 index 0000000..df7903d --- /dev/null +++ b/src/app/src/main/java/com/sbw/atrue/Order/Util/listen.java @@ -0,0 +1,79 @@ + private int socket_port=9999; + private boolean ifListen =true; + /** + * 开始监听 + */ + private Thread socketThread = new Thread() { + public void run() { + while (true) { + try { + if (serverSocket == null && ifListen) { + serverSocket = new ServerSocket(socket_port); +// serverSocket.setSoTimeout(60*1000); + } else if (serverSocket != null) { + socket = serverSocket.accept(); + if (socket != null) { + DataInputStream in = new DataInputStream(new BufferedInputStream(socket + .getInputStream())); + try { + ByteArrayOutputStream outStream = new ByteArrayOutputStream(); + byte[] buffer = new byte[1024]; + int len = 0; + while ((len = in.read(buffer)) != -1) { + outStream.write(buffer, 0, len); + } + byte[] data = outStream.toByteArray(); + dataString = new String(data, "utf-8"); + AppLog.Log(dataString); + } catch (Exception e) { + AppLog.Log(AppLog.LogType.ERROR, "DataService read: " + e); + destorySocket(); + } + } + } + } catch (IOException e1) { + AppLog.Log(AppLog.LogType.ERROR, "DataService accept: " + e1); + destorySocket(); } + try { + Thread.sleep(Config.KEEP_ALIVE_RESPONSE_TIMEOUT); + } catch (InterruptedException e) { + AppLog.Log(e.toString()); + } + } + } + }; + + public void startListen() { + ifListen = true; + if (!ifSocketThreadStart) { + ifSocketThreadStart = true; + socketThread.start(); + } + } + + public void stopListen() { + ifListen = false; + destorySocket(); + } + + private void destorySocket() { + AppLog.Log("destorySocket"); + try { + if (serverSocket != null && !serverSocket.isClosed()) { + serverSocket.close(); + } + } catch (IOException e) { + AppLog.Log(e.toString()); + } finally { + serverSocket = null; + } + try { + if (socket != null && !socket.isClosed()) { + socket.close(); + } + } catch (IOException e) { + AppLog.Log(e.toString()); + } finally { + socket = null; + } + } \ No newline at end of file