package se.unlogic.standardutils.rmi;
import java.io.IOException;
import java.net.InetSocketAddress;
import java.net.ServerSocket;
import java.net.Socket;
import java.rmi.server.RMISocketFactory;
public class TimeoutRMISocketFactory extends RMISocketFactory{
protected int readTimeout;
protected int connectionTimeout;
public TimeoutRMISocketFactory(int readTimeout, int connectionTimeout) {
super();
this.readTimeout = readTimeout;
this.connectionTimeout = connectionTimeout;
}
@Override
public Socket createSocket(String host, int port) throws IOException {
Socket socket = new Socket();
socket.setSoTimeout(readTimeout);
socket.setSoLinger(false, 0);
socket.connect(new InetSocketAddress(host, port), connectionTimeout);
return socket;
}
@Override
public ServerSocket createServerSocket(int port) throws IOException {
return new ServerSocket(port);
}
}