forked from KNEMC/KLALB
稳定性升级
This commit is contained in:
@@ -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
|
||||
|
||||
Reference in New Issue
Block a user