From 4852766718706c559a51913fc9629dbb8da306a6 Mon Sep 17 00:00:00 2001
From: zuoxiao <470321431@qq.com>
Date: 星期五, 08 十二月 2023 13:39:25 +0800
Subject: [PATCH] 添加备用IP地址

---
 app/src/main/java/com/dayu/recharge/MyApplication.java |  124 +++++++++++++++++++++-------------------
 1 files changed, 65 insertions(+), 59 deletions(-)

diff --git a/app/src/main/java/com/dayu/recharge/MyApplication.java b/app/src/main/java/com/dayu/recharge/MyApplication.java
index 41f25f0..615acbc 100644
--- a/app/src/main/java/com/dayu/recharge/MyApplication.java
+++ b/app/src/main/java/com/dayu/recharge/MyApplication.java
@@ -31,6 +31,7 @@
 import com.dayu.recharge.utils.TipUtil;
 
 
+import java.net.InetAddress;
 import java.util.Arrays;
 import java.util.Timer;
 import java.util.TimerTask;
@@ -107,9 +108,13 @@
                             super.handleMessage(msg);
                             switch (msg.what) {
                                 case 1:
-                                    createSocket(msg.obj + "", ipBean.getPort());
+                                    createSocket(msg.obj + "", ipBean.getPort(), "0", 88);
                                     break;
                                 case 2:
+                                    InetAddress[] data = (InetAddress[]) msg.obj;
+                                    createSocket(data[0].getHostAddress(), ipBean.getPort(), data[1].getHostAddress(), ipBean.getPort());
+                                    break;
+                                case -1:
                                     ToastUtil.show("DNS瑙f瀽澶辫触");
                                     break;
                             }
@@ -120,7 +125,7 @@
                 } else {
                     //ip鏂瑰紡
                     if (EasySocket.getInstance().getContext() == null || isCreate) {
-                        createSocket(ipBean.getIp(), ipBean.getPort());
+                        createSocket(ipBean.getIp(), ipBean.getPort(), "0", 88);
                     } else {
                         if (EasySocket.getInstance().getDefconnection() != null) {
                             SocketAddress address = EasySocket.getInstance().getDefconnection().getOptions().getSocketAddress();
@@ -149,80 +154,80 @@
                 && !TextUtils.isEmpty(addressCode)) {
 
             Log.i("initMachineRequestBean", "寮�濮嬫敞鍐岃澶�");
-                if (EasySocket.getInstance().getDefconnection() != null) {
-                    isDoInitMachine = true;
-                    InitMachineRequestBean initMachineRequestBean = new InitMachineRequestBean();
-                    initMachineRequestBean.setControl("01");
-                    //130107200008	112	闈掓硥灞呭浼�
-                    initMachineRequestBean.setAddress(addressCode);
-                    initMachineRequestBean.setXuLie(SocketUtil.getXuLie(this));
-                    initMachineRequestBean.setAFN("91");
-                    SocketNet.getInstance().sendTestMessage(initMachineRequestBean.pack(), new SocketCallBack() {
-                        @Override
-                        public void onSocketResponse(SocketData readData) {
+            if (EasySocket.getInstance().getDefconnection() != null) {
+                isDoInitMachine = true;
+                InitMachineRequestBean initMachineRequestBean = new InitMachineRequestBean();
+                initMachineRequestBean.setControl("01");
+                //130107200008	112	闈掓硥灞呭浼�
+                initMachineRequestBean.setAddress(addressCode);
+                initMachineRequestBean.setXuLie(SocketUtil.getXuLie(this));
+                initMachineRequestBean.setAFN("91");
+                SocketNet.getInstance().sendTestMessage(initMachineRequestBean.pack(), new SocketCallBack() {
+                    @Override
+                    public void onSocketResponse(SocketData readData) {
 
-                            if (CRC8.isCRC8(readData.getOriginDataBytes())) {
-                                //鏍¢獙CRC鎴愬姛
-                                InitMachineBackBean initMachineBackBean = new InitMachineBackBean();
-                                String initCode = HexUtil.bytesToHex(Arrays.copyOfRange(readData.getBodyBytes(), 2, 18));
-                                //纭鏀跺埌娉ㄥ唽鍙锋姤鏂�
-                                ConfirmMachineRequestBean confirmMachineRequestBean = new ConfirmMachineRequestBean();
-                                confirmMachineRequestBean.setControl("01");
-                                //130107200008	112	闈掓硥灞呭浼�
-                                confirmMachineRequestBean.setAddress(addressCode);
-                                confirmMachineRequestBean.setXuLie(SocketUtil.getXuLie(MyApplication.this));
-                                confirmMachineRequestBean.setAFN("92");
-                                confirmMachineRequestBean.setInitCode(initCode);
-                                Log.i("Socket", "纭娉ㄥ唽鎶ユ枃");
-                                SocketNet.getInstance().sendTestMessage(confirmMachineRequestBean.pack(), new SocketCallBack() {
+                        if (CRC8.isCRC8(readData.getOriginDataBytes())) {
+                            //鏍¢獙CRC鎴愬姛
+                            InitMachineBackBean initMachineBackBean = new InitMachineBackBean();
+                            String initCode = HexUtil.bytesToHex(Arrays.copyOfRange(readData.getBodyBytes(), 2, 18));
+                            //纭鏀跺埌娉ㄥ唽鍙锋姤鏂�
+                            ConfirmMachineRequestBean confirmMachineRequestBean = new ConfirmMachineRequestBean();
+                            confirmMachineRequestBean.setControl("01");
+                            //130107200008	112	闈掓硥灞呭浼�
+                            confirmMachineRequestBean.setAddress(addressCode);
+                            confirmMachineRequestBean.setXuLie(SocketUtil.getXuLie(MyApplication.this));
+                            confirmMachineRequestBean.setAFN("92");
+                            confirmMachineRequestBean.setInitCode(initCode);
+                            Log.i("Socket", "纭娉ㄥ唽鎶ユ枃");
+                            SocketNet.getInstance().sendTestMessage(confirmMachineRequestBean.pack(), new SocketCallBack() {
 
-                                    @Override
-                                    public void onSocketResponse(SocketData readData) {
-                                        isDoInitMachine = false;
-                                        if (CRC8.isCRC8(readData.getOriginDataBytes())) {
-                                            byte stateByte = readData.getBodyBytes()[2];
-                                            String state = BcdUtil.bcdToStr(stateByte);
-                                            //BCD鐮�00鎴愬姛01澶辫触(娉ㄥ唽鍙蜂笉鏄湇鍔″櫒杩斿洖淇℃伅)
-                                            if (state.equalsIgnoreCase("00")) {
-                                                //淇濆瓨璁惧娉ㄥ唽鍙�
-                                                if (!TextUtils.isEmpty(initCode)){
-                                                    DeviceNumberUtils.setDeviceNumber(initCode);
-                                                }
-                                                Log.i(TAG, "onSuccess: 璁惧娉ㄥ唽鍙凤細" + initCode);
-//                                            WSHelper.getInstance(MyApplication.this).put("initCode", initCode);
-                                                ToastUtil.show("鍏呭�肩鐞嗘敞鍐屾姤鏂囪幏鍙栨垚鍔�");
-                                            } else {
-                                                //鏍¢獙CRC閿欒
-                                                ToastUtil.show("纭鏀跺埌娉ㄥ唽鎶ユ枃鐘舵�佸け璐�");
+                                @Override
+                                public void onSocketResponse(SocketData readData) {
+                                    isDoInitMachine = false;
+                                    if (CRC8.isCRC8(readData.getOriginDataBytes())) {
+                                        byte stateByte = readData.getBodyBytes()[2];
+                                        String state = BcdUtil.bcdToStr(stateByte);
+                                        //BCD鐮�00鎴愬姛01澶辫触(娉ㄥ唽鍙蜂笉鏄湇鍔″櫒杩斿洖淇℃伅)
+                                        if (state.equalsIgnoreCase("00")) {
+                                            //淇濆瓨璁惧娉ㄥ唽鍙�
+                                            if (!TextUtils.isEmpty(initCode)) {
+                                                DeviceNumberUtils.setDeviceNumber(initCode);
                                             }
+                                            Log.i(TAG, "onSuccess: 璁惧娉ㄥ唽鍙凤細" + initCode);
+//                                            WSHelper.getInstance(MyApplication.this).put("initCode", initCode);
+                                            ToastUtil.show("鍏呭�肩鐞嗘敞鍐屾姤鏂囪幏鍙栨垚鍔�");
                                         } else {
                                             //鏍¢獙CRC閿欒
-                                            ToastUtil.show("纭鏀跺埌娉ㄥ唽鎶ユ枃鏍¢獙CRC閿欒");
+                                            ToastUtil.show("纭鏀跺埌娉ㄥ唽鎶ユ枃鐘舵�佸け璐�");
                                         }
+                                    } else {
+                                        //鏍¢獙CRC閿欒
+                                        ToastUtil.show("纭鏀跺埌娉ㄥ唽鎶ユ枃鏍¢獙CRC閿欒");
                                     }
+                                }
 
-                                    @Override
-                                    public void onSocketError(int code, String msg) {
+                                @Override
+                                public void onSocketError(int code, String msg) {
 
-                                    }
-                                });
-                            } else {//鏍¢獙CRC閿欒
-                                ToastUtil.show("鍏呭�肩鐞嗘敞鍐屾姤鏂囨牎楠孋RC閿欒");
-                            }
+                                }
+                            });
+                        } else {//鏍¢獙CRC閿欒
+                            ToastUtil.show("鍏呭�肩鐞嗘敞鍐屾姤鏂囨牎楠孋RC閿欒");
                         }
+                    }
 
-                        @Override
-                        public void onSocketError(int code, String msg) {
+                    @Override
+                    public void onSocketError(int code, String msg) {
 
-                        }
-                    });
+                    }
+                });
 
-                }
             }
+        }
 
     }
 
-    private void createSocket(String ip, int port) {
+    private void createSocket(String ip, int port, String backUpIp, int backUpPort) {
         // socket閰嶇疆
         EasySocketOptions options = new EasySocketOptions.Builder()
                 // 涓绘満鍦板潃锛岃濉啓鑷繁鐨処P鍦板潃锛屼互getString鐨勬柟寮忔槸涓轰簡闅愯棌浣滆�呰嚜宸辩殑IP鍦板潃
@@ -232,6 +237,7 @@
                 .setMaxWriteBytes(150)
                 .setMaxReadBytes(150)
                 .setRequestTimeout(5 * 1000)
+                .setBackupAddress(new SocketAddress(backUpIp, backUpPort))
                 .build();
 
         // 鍒濆鍖�

--
Gitblit v1.8.0