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); } }