KLALB完全大重写,代码规范了,可以当作网络库使用

This commit is contained in:
Administrator
2023-06-23 08:34:15 +08:00
parent 0499ecb34d
commit f743b23e53
154 changed files with 2985 additions and 15058 deletions
@@ -0,0 +1,55 @@
package org.kne.cloud.network.klalb;
import java.io.IOException;
import java.net.InetAddress;
import java.net.InetSocketAddress;
import java.net.ServerSocket;
import java.net.Socket;
import java.net.SocketImpl;
import org.kne.cloud.network.mport.VirtualServerSocket;
import org.kne.cloud.network.mport.VirtualSocket;
public class KLALBVirtualServerSocket extends VirtualServerSocket {
private KLALBController controler;
public KLALBVirtualServerSocket(KLALBController controler) throws IOException {
super(controler.createVirtualImpl());
this.controler=controler;
}
public KLALBVirtualServerSocket(KLALBController controler,int port) throws IOException {
this(controler,port, 50, null);
}
public KLALBVirtualServerSocket(KLALBController controler,int port, int backlog) throws IOException {
this(controler,port, backlog, null);
}
public KLALBVirtualServerSocket(KLALBController controler,int port, int backlog, InetAddress bindAddr) throws IOException {
this(controler);
if (backlog < 1)
backlog = 50;
try {
bind(new InetSocketAddress(bindAddr, port), backlog);
} catch(SecurityException e) {
close();
throw e;
} catch(IOException e) {
close();
throw e;
}
}
protected KLALBController getControler() {
return controler;
}
@Override
public KLALBVirtualSocket accept() throws IOException {
KLALBVirtualSocket s2=new KLALBVirtualSocket(controler);
implAccept(s2);
return s2;
}
}