正在查看: 絮语 v9.07 应用的 ServerSocket.java JAVA 源代码文件
本页面展示 JAVA 反编译生成的源代码文件,支持语法高亮显示。 仅供安全研究与技术分析使用,严禁用于任何非法用途。请遵守相关法律法规。
正在查看: 絮语 v9.07 应用的 ServerSocket.java JAVA 源代码文件
本页面展示 JAVA 反编译生成的源代码文件,支持语法高亮显示。 仅供安全研究与技术分析使用,严禁用于任何非法用途。请遵守相关法律法规。
package i.app;
import android.content.Context;
import i.runlibrary.a.o;
import i.runlibrary.a.s;
import java.io.ByteArrayOutputStream;
import java.io.File;
import java.io.IOException;
import java.io.InputStream;
import java.net.Socket;
import java.net.SocketException;
import java.net.SocketTimeoutException;
import java.util.ArrayList;
import java.util.Iterator;
import java.util.List;
public class ServerSocket {
private List a;
private Context b;
public String bm;
private java.net.ServerSocket c;
private int d;
private int e;
private int f;
private String g;
private socketServer h;
private OnMessagesListener f1038i;
private int j;
public boolean jsqq;
public interface OnMessagesListener {
void Accept(ServerSocket serverSocket, socketServer socketserver);
void Message(socketServer socketserver, int i2, String str, byte[] bArr);
}
public class socketServer {
private Socket b;
public Object obj = null;
public Object[] objsz = null;
public socketServer(Socket socket) {
this.b = socket;
a();
}
private void a() {
new f(this).start();
}
static void a(socketServer socketserver, InputStream inputStream, int i2, byte[] bArr) {
int i3;
byte[] bArr2;
while (true) {
boolean z = true;
int i4 = 0;
if (i2 < 32 || !i.runlibrary.a.f.c(bArr)) {
ByteArrayOutputStream byteArrayOutputStream = new ByteArrayOutputStream();
while (true) {
byteArrayOutputStream.write(bArr, 0, i2);
while (!socketserver.b.isClosed() && inputStream.available() > 0) {
i2 = inputStream.read(bArr);
if (i2 > 0) {
if (i2 >= 32 && i.runlibrary.a.f.c(bArr)) {
break;
}
}
}
}
z = false;
ServerSocket.this.f1038i.Message(socketserver, 0, null, byteArrayOutputStream.toByteArray());
byteArrayOutputStream.close();
if (!z) {
return;
}
} else {
byte b = bArr[6];
int a = i.runlibrary.a.f.a(bArr);
String b2 = b == 2 ? i.runlibrary.a.f.b(bArr) : null;
if (a <= 0) {
return;
}
ByteArrayOutputStream byteArrayOutputStream2 = new ByteArrayOutputStream();
if (i2 > 32) {
int i5 = i2 - 32;
if (i5 <= a) {
byteArrayOutputStream2.write(bArr, 32, i5);
if (a > i5) {
a -= i5;
}
} else {
byteArrayOutputStream2.write(bArr, 32, a);
}
if (a <= i5) {
byte[] byteArray = byteArrayOutputStream2.toByteArray();
OnMessagesListener onMessagesListener = ServerSocket.this.f1038i;
if (b == 1) {
b2 = new String(byteArray, ServerSocket.this.bm);
}
onMessagesListener.Message(socketserver, b, b2, byteArray);
byteArrayOutputStream2.close();
if (i5 <= a) {
return;
}
i3 = i5 - a;
bArr2 = new byte[i3];
for (int i6 = a + 32; i6 < i2; i6++) {
bArr2[i4] = bArr[i6];
i4++;
}
i2 = i3;
bArr = bArr2;
} else {
i2 = i5;
}
}
while (true) {
if (socketserver.b.isClosed()) {
break;
}
i2 = inputStream.read(bArr);
if (i2 > 0) {
if (i2 > a) {
byteArrayOutputStream2.write(bArr, 0, a);
break;
}
byteArrayOutputStream2.write(bArr, 0, i2);
if (a == i2) {
break;
} else {
a -= i2;
}
}
}
if (a > i2) {
return;
}
byte[] byteArray2 = byteArrayOutputStream2.toByteArray();
OnMessagesListener onMessagesListener2 = ServerSocket.this.f1038i;
if (b == 1) {
b2 = new String(byteArray2, ServerSocket.this.bm);
}
onMessagesListener2.Message(socketserver, b, b2, byteArray2);
byteArrayOutputStream2.close();
if (i2 <= a) {
return;
}
i3 = i2 - a;
bArr2 = new byte[i3];
while (a < i2) {
bArr2[i4] = bArr[a];
i4++;
a++;
}
i2 = i3;
bArr = bArr2;
}
}
}
public int bjdk() {
return this.b.getLocalPort();
}
public String bjip() {
return this.b.getLocalAddress().getHostAddress();
}
public boolean cq() {
try {
if (!this.b.isClosed()) {
return false;
}
if (ServerSocket.this.e > 0) {
Socket socket = this.b;
socket.connect(socket.getRemoteSocketAddress(), ServerSocket.this.e);
} else {
Socket socket2 = this.b;
socket2.connect(socket2.getRemoteSocketAddress());
}
if (this.b.isClosed()) {
return true;
}
if (!ServerSocket.this.a.contains(this)) {
ServerSocket.this.a.add(this);
}
a();
return true;
} catch (IOException e) {
e.printStackTrace();
return false;
}
}
public int dk() {
return this.b.getPort();
}
public void gb() {
if (this.b.isClosed()) {
return;
}
ServerSocket.this.a.remove(this);
try {
this.b.close();
} catch (IOException e) {
e.printStackTrace();
}
}
public String ip() {
return this.b.getInetAddress().getHostAddress();
}
public Socket ljdx() {
return this.b;
}
public boolean sc(Object obj) {
return ServerSocket.this.a(this, obj);
}
public boolean sc(Object obj, Object obj2) {
return ServerSocket.this.a(this, obj, obj2);
}
public boolean sfgb() {
return this.b.isClosed();
}
public Object sj() {
return this.obj;
}
public void sj(Object obj) {
this.obj = obj;
}
public void szsj(Object obj) {
this.objsz = s.c(obj);
}
public Object[] szsj() {
return this.objsz;
}
}
public ServerSocket(Context context, int i2, int i3, int i4, boolean z, OnMessagesListener onMessagesListener) {
this.a = new ArrayList();
this.c = null;
this.jsqq = true;
this.d = 0;
this.e = 0;
this.bm = "utf-8";
this.h = null;
this.f1038i = null;
this.j = 0;
this.j = 1;
this.b = context;
try {
this.c = new java.net.ServerSocket(i2);
} catch (IOException e) {
e.printStackTrace();
}
if (i3 > 0) {
try {
this.c.setSoTimeout(i3);
} catch (SocketException e2) {
e2.printStackTrace();
}
}
this.f = i2;
this.d = i3;
this.e = i4;
this.jsqq = z;
this.f1038i = onMessagesListener;
}
public ServerSocket(Context context, String str, int i2, int i3, OnMessagesListener onMessagesListener) {
this.a = new ArrayList();
this.c = null;
this.jsqq = true;
this.d = 0;
this.e = 0;
this.bm = "utf-8";
this.h = null;
this.f1038i = null;
this.j = 0;
this.j = 2;
this.b = context;
this.g = str;
this.f = i2;
this.e = i3;
this.f1038i = onMessagesListener;
}
public boolean a(socketServer socketserver, Object obj) {
byte[] bytes = o.toBytes(obj, this.bm, null);
if (bytes != null) {
return a(socketserver.b, bytes);
}
return false;
}
public boolean a(socketServer socketserver, Object obj, Object obj2) {
File file;
Object obj3;
int d = s.d(obj);
if (d == 2) {
File file2 = obj2 instanceof File ? (File) obj2 : new File(i.runlibrary.a.d.a(this.b, obj2.toString()));
if (!file2.exists() || !file2.isFile()) {
return false;
}
file = file2;
obj3 = file2;
} else {
file = null;
obj3 = obj2;
}
byte[] bytes = o.toBytes(obj3, this.bm, null);
return bytes != null && a(socketserver.b, i.runlibrary.a.f.a(bytes, d, file)) && a(socketserver.b, bytes);
}
private static boolean a(Socket socket, byte[] bArr) {
try {
socket.getOutputStream().write(bArr);
socket.getOutputStream().flush();
return true;
} catch (IOException e) {
e.printStackTrace();
return false;
}
}
public int bjdk() {
java.net.ServerSocket serverSocket = this.c;
if (serverSocket != null) {
return serverSocket.getLocalPort();
}
socketServer socketserver = this.h;
if (socketserver != null) {
return socketserver.b.getLocalPort();
}
return -1;
}
public String bjip() {
if (this.c != null) {
return "127.0.0.1";
}
socketServer socketserver = this.h;
if (socketserver != null) {
return socketserver.b.getLocalAddress().getHostAddress();
}
return null;
}
public void cq() {
int i2 = this.j;
if (i2 != 1) {
if (i2 == 2 && this.h.sfgb()) {
ks();
return;
}
return;
}
if (this.c.isClosed()) {
try {
this.c = new java.net.ServerSocket(this.f);
} catch (IOException e) {
e.printStackTrace();
}
int i3 = this.d;
if (i3 > 0) {
try {
this.c.setSoTimeout(i3);
} catch (SocketException e2) {
e2.printStackTrace();
}
}
ks();
}
}
public java.net.ServerSocket fwd() {
return this.c;
}
public void gb() {
this.jsqq = false;
Iterator it = this.a.iterator();
while (it.hasNext()) {
try {
((socketServer) it.next()).gb();
} catch (Exception e) {
e.printStackTrace();
}
}
this.a.clear();
java.net.ServerSocket serverSocket = this.c;
if (serverSocket == null || serverSocket.isClosed()) {
return;
}
try {
this.c.close();
} catch (IOException e2) {
e2.printStackTrace();
}
}
public void ks() {
int i2 = this.j;
if (i2 != 1) {
if (i2 == 2) {
try {
Socket socket = new Socket(this.g, this.f);
int i3 = this.e;
if (i3 != 0) {
socket.setSoTimeout(i3);
}
socketServer socketserver = new socketServer(socket);
this.h = socketserver;
this.a.add(socketserver);
return;
} catch (IOException e) {
e.printStackTrace();
return;
}
}
return;
}
while (!this.c.isClosed()) {
try {
Socket accept = this.c.accept();
if (this.jsqq) {
int i4 = this.e;
if (i4 > 0) {
accept.setSoTimeout(i4);
}
socketServer socketserver2 = new socketServer(accept);
this.a.add(socketserver2);
this.f1038i.Accept(this, socketserver2);
} else {
accept.close();
}
} catch (SocketTimeoutException e2) {
e2.printStackTrace();
} catch (IOException e3) {
e3.printStackTrace();
}
}
try {
this.c.close();
} catch (IOException e4) {
e4.printStackTrace();
}
}
public socketServer lj(Object obj) {
int d = s.d(obj);
if (d < 0 || this.a.size() <= d) {
return null;
}
return (socketServer) this.a.get(d);
}
public List lj() {
return this.a;
}
public void ljqk() {
if (this.c != null) {
Iterator it = this.a.iterator();
while (it.hasNext()) {
try {
((socketServer) it.next()).gb();
} catch (Exception e) {
e.printStackTrace();
}
}
this.a.clear();
}
}
public int ljzs() {
return this.a.size();
}
public int sc(Object obj) {
int i2 = 0;
for (socketServer socketserver : this.a) {
if (!socketserver.sfgb() && a(socketserver, obj)) {
i2++;
}
}
return i2;
}
public int sc(Object obj, Object obj2) {
int i2 = 0;
for (socketServer socketserver : this.a) {
if (!socketserver.sfgb() && a(socketserver, obj, obj2)) {
i2++;
}
}
return i2;
}
public boolean sfgb() {
java.net.ServerSocket serverSocket = this.c;
if (serverSocket != null) {
return serverSocket.isClosed();
}
socketServer socketserver = this.h;
if (socketserver != null) {
return socketserver.sfgb();
}
return true;
}
}