Java RMI – 客户端超时

我正在使用 Java RMI构建分布式系统,它必须支持服务器丢失.

如果我的客户端使用RMI连接到服务器,如果此服务器出现故障(例如电缆问题),我的客户端应该会收到异常,以便连接到其他服务器.

但是当服务器停机时,我的客户端没有任何反应,他一直在等待回复.如何设置超时时间?

解决方法

对于套接字读取超时,可以这样设置自己的工厂,
RMISocketFactory.setSocketFactory( new RMISocketFactory()
            {
                public Socket createSocket( String host,int port )
                    throws IOException
                {
                    Socket socket = new Socket();
                    socket.setSoTimeout( timeoutMillis );
                    socket.setSoLinger( false,0 );
                    socket.connect( new InetSocketAddress( host,port ),timeoutMillis );
                    return socket;
                }

                public ServerSocket createServerSocket( int port )
                    throws IOException
                {
                    return new ServerSocket( port );
                }
            } );

相关文章

最近看了一下学习资料,感觉进制转换其实还是挺有意思的,尤...
/*HashSet 基本操作 * --set:元素是无序的,存入和取出顺序不...
/*list 基本操作 * * List a=new List(); * 增 * a.add(inde...
/* * 内部类 * */ 1 class OutClass{ 2 //定义外部类的成员变...
集合的操作Iterator、Collection、Set和HashSet关系Iterator...
接口中常量的修饰关键字:public,static,final(常量)函数...