一個基站接受30-40個手環接受的資料
阿新 • • 發佈:2018-12-13
package cn.com.project; import java.io.IOException; import java.io.InputStream; import java.net.ServerSocket; import java.net.Socket; import java.sql.SQLException; import java.text.SimpleDateFormat; import java.util.Date; public class Test { public static void main(String[] args) throws IOException { ServerSocket server1=new ServerSocket(6080); Port(server1); } public static void Port(ServerSocket server1) throws IOException{ Socket socket=null; StringBuilder stringBuilder=null; socket = server1.accept(); while(true){ stringBuilder=new StringBuilder(); InputStream is=socket.getInputStream(); byte[] buf = new byte[1024]; int len = -1; len = is.read(buf); for (int i = 0; i < len; i++) { int v = buf[i] & 0xFF; String hv = Integer.toHexString(v); if (hv.length() < 2) { stringBuilder.append(0); } stringBuilder.append(hv); } String str=stringBuilder.toString(); if(str.length()>16){ str=str.substring(0, 16); } System.out.println("資料是:"+str); try { othernum(str); } catch (SQLException e) { // TODO Auto-generated catch block e.printStackTrace(); } //只要資料不為才會進行儲存 //儲存到資料庫中 } //我想開啟多執行緒接受資料 } public static void othernum(String a) throws SQLException { int len = a.length(); StringBuilder sb = null; StringBuilder sb1 = null; sb = new StringBuilder(""); sb1 = new StringBuilder(""); // int sz[] = new int[8]; String szs[] = new String[9]; for (int n = 0; n < len / 2; n++) {// n<8 // n=0 0,2 n=1 2,2 String str = null; str = a.substring(2 * n, 2 * n + 2); sz[n] = Integer.parseInt(str, 16); } for (int i = 0; i < 9; i++) { if (i == 0) { sb.append(sz[0]); } if (i == 1) { sb.append(sz[1]); szs[0] = sb.toString(); } if (i == 6) { sb1.append(sz[i]); } if (i == 7) { sb1.append(sz[i]); szs[1] = sb1.toString(); } if (i == 3 || i == 4 || i == 5 || i == 2) { szs[i] = String.valueOf(sz[i]); } } SimpleDateFormat df = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss"); szs[6] = a; szs[7] = df.format(new Date()); szs[8] = "1"; SimpleDateFormat sim = new SimpleDateFormat("yyyy-MM-dd"); Date d = new Date(); String dd = sim.format(d); int j=0; for (int i = 0; i < szs.length; i++) { if(szs[i]==null||"".equals(szs[i])){ j++; System.out.println("''''"); } } if(j==0){ insert_num(a, szs); } } public static void insert_num(String a, String szs[]) { int j=0; for (int i = 0; i < szs.length; i++) { if(szs[i]==null||"".equals(szs[i])){ j++; System.out.println("''''"); } } if(j==0){ System.out.println("要插入資料庫的資料串"+a); String sql = "insert into yh(number,bs,xl,lpower,upower,alarm,data,time,state) values(?,?,?,?,?,?,?,?,?)"; JdbcUtils.update(sql, szs); } } }
資料庫接受的資料:
2秒之內接受所有的16個手卡的資料;