我正在使用
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 ); } } );
原文地址:https://www.jb51.cc/java/125365.html
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。