导航菜单

页面标题

页面副标题

万能钥匙 v1.1.23 - UDPSocket.java 源代码

正在查看: 万能钥匙 v1.1.23 应用的 UDPSocket.java JAVA 源代码文件

本页面展示 JAVA 反编译生成的源代码文件,支持语法高亮显示。 仅供安全研究与技术分析使用,严禁用于任何非法用途。请遵守相关法律法规。


package com.finogeeks.lib.applet.api.network.udp;

import android.util.Base64;
import com.finogeeks.lib.applet.modules.log.FLog;
import hh0.l;
import java.net.DatagramPacket;
import java.net.DatagramSocket;
import java.net.Inet6Address;
import java.net.InetAddress;
import java.net.SocketException;
import kotlin.Metadata;
import kotlin.Pair;
import kotlin.jvm.internal.DefaultConstructorMarker;
import kotlin.jvm.internal.g0;
import kotlin.jvm.internal.n;
import kotlin.jvm.internal.p;
import kotlin.jvm.internal.y;
import lg0.h;
import lg0.i;
import lg0.s;

@Metadata(d1 = {"\u0000T\n\u0002\u0018\u0002\n\u0002\u0010\u0000\n\u0002\u0010\u000e\n\u0000\n\u0002\u0018\u0002\n\u0002\b\u0003\n\u0002\u0010\b\n\u0000\n\u0002\u0018\u0002\n\u0002\b\u0002\n\u0002\u0018\u0002\n\u0002\b\u0004\n\u0002\u0010\u0012\n\u0002\b\t\n\u0002\u0018\u0002\n\u0002\b\u0005\n\u0002\u0018\u0002\n\u0002\b\u0002\n\u0002\u0010\u000b\n\u0002\b\t\n\u0002\u0018\u0002\n\u0002\b\u0005\u0018\u00002\u00020\u0001:\u000223B\u0017\u0012\u0006\u0010\u0003\u001a\u00020\u0002\u0012\u0006\u0010\u0005\u001a\u00020\u0004¢\u0006\u0004\b\u0006\u0010\u0007J'\u0010\u000b\u001a\u0012\u0012\u0006\u0012\u0004\u0018\u00010\b\u0012\u0006\u0012\u0004\u0018\u00010\u00020\n2\b\u0010\t\u001a\u0004\u0018\u00010\b¢\u0006\u0004\b\u000b\u0010\fJ\r\u0010\u000e\u001a\u00020\r¢\u0006\u0004\b\u000e\u0010\u000fJ\u000f\u0010\u0010\u001a\u00020\rH\u0002¢\u0006\u0004\b\u0010\u0010\u000fJ7\u0010\u0016\u001a\u0004\u0018\u00010\u00022\u0006\u0010\u0011\u001a\u00020\u00022\u0006\u0010\t\u001a\u00020\b2\u0006\u0010\u0013\u001a\u00020\u00122\u0006\u0010\u0014\u001a\u00020\b2\u0006\u0010\u0015\u001a\u00020\b¢\u0006\u0004\b\u0016\u0010\u0017J\u000f\u0010\u0018\u001a\u00020\rH\u0002¢\u0006\u0004\b\u0018\u0010\u000fR\u0018\u0010\u0019\u001a\u0004\u0018\u00010\b8\u0002@\u0002X\u0082\u000e¢\u0006\u0006\n\u0004\b\u0019\u0010\u001aR\u0014\u0010\u0005\u001a\u00020\u00048\u0002X\u0082\u0004¢\u0006\u0006\n\u0004\b\u0005\u0010\u001bR\u001b\u0010!\u001a\u00020\u001c8BX\u0082\u0084\u0002¢\u0006\f\n\u0004\b\u001d\u0010\u001e\u001a\u0004\b\u001f\u0010 R\u0018\u0010#\u001a\u0004\u0018\u00010\"8\u0002@\u0002X\u0082\u000e¢\u0006\u0006\n\u0004\b#\u0010$R\u0016\u0010&\u001a\u00020%8\u0002@\u0002X\u0082\u000e¢\u0006\u0006\n\u0004\b&\u0010'R\u001b\u0010+\u001a\u00020\u00128BX\u0082\u0084\u0002¢\u0006\f\n\u0004\b(\u0010\u001e\u001a\u0004\b)\u0010*R\u0017\u0010\u0003\u001a\u00020\u00028\u0006¢\u0006\f\n\u0004\b\u0003\u0010,\u001a\u0004\b-\u0010.R\u0018\u00100\u001a\u0004\u0018\u00010/8\u0002@\u0002X\u0082\u000e¢\u0006\u0006\n\u0004\b0\u00101¨\u00064"}, d2 = {"Lcom/finogeeks/lib/applet/api/network/udp/UDPSocket;", "", "", "socketId", "Lcom/finogeeks/lib/applet/api/network/udp/UDPSocket$Callback;", "callback", "<init>", "(Ljava/lang/String;Lcom/finogeeks/lib/applet/api/network/udp/UDPSocket$Callback;)V", "", "port", "Lkotlin/Pair;", "bindPort", "(Ljava/lang/Integer;)Lkotlin/Pair;", "Llg0/e0;", "close", "()V", "receiveMessage", "address", "", "message", "offset", "length", "sendMessage", "(Ljava/lang/String;I[BII)Ljava/lang/String;", "startSocketThread", "boundPort", "Ljava/lang/Integer;", "Lcom/finogeeks/lib/applet/api/network/udp/UDPSocket$Callback;", "Ljava/net/DatagramPacket;", "datagramPacket$delegate", "Llg0/h;", "getDatagramPacket", "()Ljava/net/DatagramPacket;", "datagramPacket", "Ljava/net/DatagramSocket;", "datagramSocket", "Ljava/net/DatagramSocket;", "", "isSocketThreadRunning", "Z", "receiveByte$delegate", "getReceiveByte", "()[B", "receiveByte", "Ljava/lang/String;", "getSocketId", "()Ljava/lang/String;", "Ljava/lang/Thread;", "socketThread", "Ljava/lang/Thread;", "Callback", "Companion", "finapplet_release"}, k = 1, mv = {1, 4, 0})
public final class UDPSocket {
    static final l[] i = {g0.j(new y(g0.b(UDPSocket.class), "receiveByte", "getReceiveByte()[B")), g0.j(new y(g0.b(UDPSocket.class), "datagramPacket", "getDatagramPacket()Ljava/net/DatagramPacket;"))};
    private final h a;
    private final h b;
    private DatagramSocket c;
    private Thread d;
    private boolean e;
    private volatile Integer f;
    private final String g;
    private final a h;

    public interface a {
        void a(String str, String str2, String str3, int i, int i2, String str4);

        void onError(String str);
    }

    public static final class b {
        private b() {
        }

        public b(DefaultConstructorMarker defaultConstructorMarker) {
            this();
        }
    }

    public static final class c extends p implements ah0.a<DatagramPacket> {
        public c() {
            super(0);
        }

        public final DatagramPacket invoke() {
            return new DatagramPacket(UDPSocket.this.d(), UDPSocket.this.d().length);
        }
    }

    public static final class d extends p implements ah0.a<byte[]> {
        public static final d a = new d();

        public d() {
            super(0);
        }

        public final byte[] invoke() {
            return new byte[1024];
        }
    }

    public static final class e implements Runnable {
        public e() {
        }

        @Override
        public final void run() {
            UDPSocket.this.e();
        }
    }

    static {
        new b(null);
    }

    public UDPSocket(String str, a aVar) {
        n.j(str, "socketId");
        n.j(aVar, "callback");
        this.g = str;
        this.h = aVar;
        this.a = i.a(d.a);
        this.b = i.a(new c());
    }

    private final DatagramPacket c() {
        h hVar = this.b;
        l lVar = i[1];
        return (DatagramPacket) hVar.getValue();
    }

    public final byte[] d() {
        h hVar = this.a;
        l lVar = i[0];
        return (byte[]) hVar.getValue();
    }

    public final void e() {
        while (this.e) {
            try {
                DatagramSocket datagramSocket = this.c;
                if (datagramSocket != null) {
                    datagramSocket.receive(c());
                }
                int length = c().getLength();
                String encodeToString = Base64.encodeToString(c().getData(), 0, length, 2);
                FLog.d$default("UDPSocket", "receiveMessage message : " + encodeToString, null, 4, null);
                InetAddress address = c().getAddress();
                String str = address instanceof Inet6Address ? "IPv6" : "IPv4";
                a aVar = this.h;
                String str2 = this.g;
                n.e(address, "address");
                String hostAddress = address.getHostAddress();
                n.e(hostAddress, "address.hostAddress");
                int port = c().getPort();
                n.e(encodeToString, "message");
                aVar.a(str2, hostAddress, str, port, length, encodeToString);
                c().setLength(1024);
            } catch (Exception e2) {
                e2.printStackTrace();
                a aVar2 = this.h;
                String message = e2.getMessage();
                if (message == null) {
                    message = "";
                }
                aVar2.onError(message);
                a();
                return;
            }
        }
    }

    private final void f() {
        Thread thread = new Thread(new e());
        thread.start();
        this.e = true;
        this.d = thread;
    }

    public final String a(String str, int i2, byte[] bArr, int i3, int i4) {
        n.j(str, "address");
        n.j(bArr, "message");
        FLog.d$default("UDPSocket", "sendMessage : " + str + ", " + i2 + ", " + bArr + ", " + i3 + ", " + i4, null, 4, null);
        try {
            InetAddress byName = InetAddress.getByName(str);
            n.e(byName, "InetAddress.getByName(address)");
            DatagramPacket datagramPacket = new DatagramPacket(bArr, i3, i4, byName, i2);
            DatagramSocket datagramSocket = this.c;
            if (datagramSocket != null) {
                datagramSocket.send(datagramPacket);
            }
            if (FLog.INSTANCE.isEnableLog()) {
                FLog.d$default("UDPSocket", "sendMessage succeed : " + new String(bArr, tj0.c.b) + ", " + str + ", " + i2, null, 4, null);
            }
            return null;
        } catch (Exception e2) {
            if (FLog.INSTANCE.isEnableLog()) {
                FLog.d$default("UDPSocket", "sendMessage failed : " + new String(bArr, tj0.c.b) + ", " + str + ", " + i2, null, 4, null);
            }
            String message = e2.getMessage();
            return message != null ? message : "";
        }
    }

    public final Pair<Integer, String> a(Integer num) {
        if (num == null) {
            if (this.f == null) {
                try {
                    DatagramSocket datagramSocket = new DatagramSocket();
                    this.c = datagramSocket;
                    this.f = Integer.valueOf(datagramSocket.getLocalPort());
                    f();
                } catch (SocketException e2) {
                    e = e2;
                    e.printStackTrace();
                }
            }
        } else if (this.f == null) {
            try {
                DatagramSocket datagramSocket2 = new DatagramSocket(num.intValue());
                this.c = datagramSocket2;
                this.f = Integer.valueOf(datagramSocket2.getLocalPort());
                f();
            } catch (SocketException e3) {
                e = e3;
                e.printStackTrace();
            }
        } else {
            if (!n.d(num, this.f)) {
                a();
            }
            try {
                DatagramSocket datagramSocket3 = new DatagramSocket(num.intValue());
                this.c = datagramSocket3;
                this.f = Integer.valueOf(datagramSocket3.getLocalPort());
                f();
            } catch (SocketException e4) {
                e = e4;
                e.printStackTrace();
            }
        }
        e = null;
        return s.a(this.f, e != null ? e.getLocalizedMessage() : null);
    }

    public final void a() {
        this.e = false;
        try {
            Thread thread = this.d;
            if (thread != null) {
                thread.interrupt();
            }
        } catch (Exception e2) {
            e2.printStackTrace();
        }
        DatagramSocket datagramSocket = this.c;
        if (datagramSocket != null) {
            datagramSocket.close();
        }
        this.f = null;
    }

    public final String getG() {
        return this.g;
    }
}