forked from KNEMC/KLALB
KLALB完全大重写,代码规范了,可以当作网络库使用
This commit is contained in:
@@ -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;
|
||||
}
|
||||
|
||||
}
|
||||
Reference in New Issue
Block a user