| | |
| | | import com.google.gson.JsonParseException; |
| | | import com.google.gson.JsonParser; |
| | | |
| | | import org.json.JSONArray; |
| | | |
| | | import java.io.BufferedInputStream; |
| | | import java.io.BufferedOutputStream; |
| | | import java.io.ByteArrayOutputStream; |
| | | import java.io.DataInputStream; |
| | | import java.io.IOException; |
| | | import java.io.InterruptedIOException; |
| | | import java.net.InetSocketAddress; |
| | | import java.net.Socket; |
| | | import java.util.ArrayList; |
| | |
| | | import java.util.concurrent.locks.ReentrantLock; |
| | | |
| | | public class SocketClient extends Thread { |
| | | private String ip; |
| | | private int port; |
| | | |
| | | public SocketClient(String ip, int port) { |
| | | this.ip = ip; |
| | | this.port = port; |
| | | } |
| | | |
| | | public static boolean needRestart = false; |
| | | |
| | | public Comparator<Map<String, String>> mapComparator = new Comparator<Map<String, String>>() { |
| | | public static long lastUpdateTime = System.currentTimeMillis(); |
| | | static Lock socketLock = new ReentrantLock(); |
| | | static List<Socket> sockets = new ArrayList<>(); |
| | | static List<Socket> connectedSockets = new ArrayList<>(); |
| | | static Lock connectedSocketsLock = new ReentrantLock(); |
| | | public static Comparator<Map<String, String>> mapComparator = new Comparator<Map<String, String>>() { |
| | | public int compare(Map<String, String> m1, Map<String, String> m2) { |
| | | try { |
| | | double score1 = Double.parseDouble(m1.get("likePer")); |
| | |
| | | return 0; |
| | | } |
| | | }; |
| | | public Socket socket = null; |
| | | static List<Map<String, String>> newRemoteAlarmList = null; |
| | | byte[] buff = new byte[1 * 1024 * 1024]; |
| | | private String ip; |
| | | private int port; |
| | | |
| | | public SocketClient(String ip, int port) { |
| | | this.ip = ip; |
| | | this.port = port; |
| | | } |
| | | |
| | | public static void closeAllSockets() { |
| | | socketLock.lock(); |
| | | for (Socket socket : sockets) { |
| | | try { |
| | | if (socket != null) { |
| | | socket.close(); |
| | | } |
| | | } catch (Exception e) { |
| | | e.printStackTrace(); |
| | | } |
| | | } |
| | | sockets.clear(); |
| | | socketLock.unlock(); |
| | | } |
| | | |
| | | public static void socketAdd(Socket socket) { |
| | | socketLock.lock(); |
| | | sockets.add(socket); |
| | | socketLock.unlock(); |
| | | } |
| | | |
| | | public native void setup(String ip, int port); |
| | | |
| | | public native String receive(); |
| | | |
| | | public static long lastUpdateTime = System.currentTimeMillis(); |
| | | |
| | | public void parseJson(String msg) { |
| | | public static void parseJson(String msg) { |
| | | |
| | | JsonParser parser = new JsonParser(); |
| | | boolean isJSON = true; |
| | |
| | | } |
| | | } |
| | | |
| | | List<Map<String, String>> newRemoteAlarmList = null; |
| | | |
| | | public Socket socket = null; |
| | | byte[] buff = new byte[1*1024*1024]; |
| | | @Override |
| | | public void run() { |
| | | super.run(); |
| | |
| | | |
| | | } |
| | | |
| | | } |
| | | |
| | | static Lock socketLock = new ReentrantLock(); |
| | | static List<Socket> sockets = new ArrayList<>(); |
| | | |
| | | static List<Socket> connectedSockets = new ArrayList<>(); |
| | | static Lock connectedSocketsLock = new ReentrantLock(); |
| | | |
| | | public static void closeAllSockets () { |
| | | socketLock.lock(); |
| | | for (Socket socket : sockets) { |
| | | try { |
| | | if (socket != null) { |
| | | socket.close(); |
| | | } |
| | | } catch (Exception e) { |
| | | e.printStackTrace(); |
| | | } |
| | | } |
| | | sockets.clear(); |
| | | socketLock.unlock(); |
| | | } |
| | | |
| | | public static void socketAdd(Socket socket) { |
| | | socketLock.lock(); |
| | | sockets.add(socket); |
| | | socketLock.unlock(); |
| | | } |
| | | |
| | | public void closeSocket() { |