|
@@ -0,0 +1,100 @@
|
|
|
+package com.huimv.eartag.socket;
|
|
|
+
|
|
|
+
|
|
|
+import java.io.*;
|
|
|
+import java.net.ServerSocket;
|
|
|
+import java.net.Socket;
|
|
|
+import java.text.SimpleDateFormat;
|
|
|
+import java.util.Date;
|
|
|
+
|
|
|
+
|
|
|
+public class ServerThread extends Thread {
|
|
|
+
|
|
|
+ private Socket socket;
|
|
|
+
|
|
|
+ public ServerThread(Socket socket) {
|
|
|
+ this.socket = socket;
|
|
|
+ }
|
|
|
+
|
|
|
+ @Override
|
|
|
+ public void run() {
|
|
|
+ InputStream inputStream = null;
|
|
|
+ InputStreamReader inputStreamReader = null;
|
|
|
+ BufferedReader bufferedReader = null;
|
|
|
+ OutputStream outputStream = null;
|
|
|
+ PrintWriter printWriter = null;
|
|
|
+
|
|
|
+ try {
|
|
|
+
|
|
|
+ // server接收消息
|
|
|
+ inputStream = socket.getInputStream();
|
|
|
+
|
|
|
+ outputStream = socket.getOutputStream();
|
|
|
+ inputStream = socket.getInputStream();
|
|
|
+ byte[] b = new byte[1024];
|
|
|
+ inputStream.read(b);
|
|
|
+ String line = new String(b);
|
|
|
+
|
|
|
+ int i = line.indexOf("+", line.indexOf("+") + 1);
|
|
|
+ int ver = Integer.parseInt(line.substring(i + 1, i + 2));
|
|
|
+ outputStream = socket.getOutputStream();
|
|
|
+
|
|
|
+
|
|
|
+ //首次应答返回机器ID
|
|
|
+ if (ver == 1){
|
|
|
+
|
|
|
+ }
|
|
|
+
|
|
|
+ if (ver == 2) {
|
|
|
+ SimpleDateFormat sdf = new SimpleDateFormat("yyyyMMddHHmmss");
|
|
|
+ String time = "hm+2+" + sdf.format(new Date()) + "+4+end";
|
|
|
+ outputStream.write(time.getBytes());
|
|
|
+ }
|
|
|
+ if (ver == 6) {
|
|
|
+ outputStream.write("hm+6+0+6+end".getBytes());
|
|
|
+ }
|
|
|
+ if (ver == 3) {
|
|
|
+ outputStream.write("hm+3+0+6+end".getBytes());
|
|
|
+
|
|
|
+ }
|
|
|
+
|
|
|
+ if (ver == 4) {
|
|
|
+ outputStream.write("hm+4+0+7+end".getBytes());
|
|
|
+
|
|
|
+ }
|
|
|
+ if (ver == 8) {
|
|
|
+ outputStream.write("hm+5+0+8+end".getBytes());
|
|
|
+ }
|
|
|
+
|
|
|
+ socket.shutdownInput();
|
|
|
+
|
|
|
+ } catch (IOException e) {
|
|
|
+ e.printStackTrace();
|
|
|
+ } finally {
|
|
|
+ // 关闭资源
|
|
|
+ try {
|
|
|
+ if (printWriter != null) {
|
|
|
+ printWriter.close();
|
|
|
+ }
|
|
|
+ if (outputStream != null) {
|
|
|
+ outputStream.close();
|
|
|
+
|
|
|
+ }
|
|
|
+ if (bufferedReader != null) {
|
|
|
+ bufferedReader.close();
|
|
|
+ }
|
|
|
+ if (inputStreamReader != null) {
|
|
|
+ inputStreamReader.close();
|
|
|
+ }
|
|
|
+ if (inputStream != null) {
|
|
|
+ inputStream.close();
|
|
|
+ }
|
|
|
+ if (socket != null) {
|
|
|
+ socket.close();
|
|
|
+ }
|
|
|
+ } catch (IOException e) {
|
|
|
+ e.printStackTrace();
|
|
|
+ }
|
|
|
+ }
|
|
|
+ }
|
|
|
+}
|