稳定性升级

This commit is contained in:
Administrator
2023-07-26 21:30:00 +08:00
parent 585b7c5fe6
commit 722ab9710f
30 changed files with 720 additions and 158 deletions
@@ -35,13 +35,12 @@ public KLALBRemoteSocket(Socket socket) {
public KLALBRemoteSocket(Socket socket,Monitor m) {
super(socket,m);
try {
socket.setSendBufferSize(32768);
socket.setReceiveBufferSize(65535);
//socket.setSendBufferSize(32768);
//socket.setReceiveBufferSize(65535);
//System.out.println(socket.getSendBufferSize()+" "+socket.getReceiveBufferSize());
socket.setTcpNoDelay(true);
socket.setSoTimeout(10000);
} catch (SocketException e1) {
// TODO 自动生成的 catch 块
e1.printStackTrace();
}
ThreadTool.makeVDaemonThreadIfSupport("远程接收线程", () -> {
@@ -49,20 +48,20 @@ public KLALBRemoteSocket(Socket socket) {
while (!isClosed()) {
KLALBPacket kpp = getInputStream().readPacket();
//System.out.println("RX:" + kpp);
if(kpp instanceof PINGPacket) {
sendPacket(new PONGPacket(((PINGPacket) kpp).getTime()), 65540);
}else if(kpp instanceof PONGPacket) {
PONGPacket png=(PONGPacket) kpp;
getMonitor().updateLatency (System.nanoTime()- png.getTime());
try {
socket.setSoTimeout(1100);
socket.setSoTimeout(600);
} catch (SocketException e1) {
// TODO 自动生成的 catch 块
e1.printStackTrace();
}
}else {
System.out.println("RX:" + kpp);
if(kpp instanceof VADDRPacket) {
remoteVaddr=((VADDRPacket) kpp).getVaddr();
}
@@ -94,15 +93,19 @@ public KLALBRemoteSocket(Socket socket) {
PQItem pqi=sendQueue.poll();
if(pqi!=null) {
KLALBPacket kpp=pqi.getPacket();
//if(!(kpp instanceof PONGPacket))
//System.out.println("TX:" + kpp);
if(!(kpp instanceof PONGPacket))
System.out.println("TX:" + kpp);
if(kpp instanceof PONGPacket) {
PONGPacket pp=(PONGPacket) kpp;
pp.redeltaTime(System.nanoTime()-pqi.getAddtime());
}
getOutputStream().writePacket(kpp);
//System.out.println(sendQueue.size());
}else {
Thread.sleep(1);
synchronized (sendQueue) {
sendQueue.wait(10);
}
//Thread.sleep(1);
}
}
}
@@ -117,7 +120,6 @@ public KLALBRemoteSocket(Socket socket) {
}
}
}).start();
}
@@ -178,6 +180,9 @@ public KLALBRemoteSocket(Socket socket) {
public void sendPacket(KLALBPacket kp,int priority) {
sendQueue.add(new PQItem(kp, priority));
synchronized (sendQueue) {
sendQueue.notifyAll();
}
}
public void setPacketReceiver(Consumer<KLALBPacket> rec) {
@@ -194,11 +199,11 @@ public KLALBRemoteSocket(Socket socket) {
super.close();
sendQueue.forEach((x)->{
try {
//System.out.println("断线重发");
controller.sendPacketToAddress(remoteVaddr, x.getPacket(), x.getPriority()+1);
} catch (NoRouteToHostException e) {
}
});
}
@Override