package me.test.jdk.java.rmi.server; import java.io.IOException; import java.net.InetSocketAddress; import java.net.Socket; import java.rmi.server.RMIClientSocketFactory; // http://docs.oracle.com/javase/1.4.2/docs/guide/rmi/socketfactory/index.html // https://secure.kitserve.org.uk/content/setup-java-rmi-over-internet public class MyRmiClientSocketFactory implements RMIClientSocketFactory { private int socketTimeout = 0; private int connectTimeout = 0; public Socket createSocket(String host, int port) throws IOException { final Socket socket = new Socket(); socket.setSoTimeout(socketTimeout); socket.setSoLinger(false, 0); socket.connect(new InetSocketAddress(host, port), connectTimeout); return socket; } public int getSocketTimeout() { return socketTimeout; } public void setSocketTimeout(int socketTimeout) { this.socketTimeout = socketTimeout; } public int getConnectTimeout() { return connectTimeout; } public void setConnectTimeout(int connectTimeout) { this.connectTimeout = connectTimeout; } }