我有一个简单的服务器客户端应用程序.一切正常,但在某个阶段,服务器需要超过5分钟的时间才能得到响应(这是正常的,需要像这样).问题是,如果需要超过5分钟,我会不断得到这个异常:
java.net.SocketTimeoutException:读取超时.
所以我想知道是否有一些默认的套接字超时在Windows或Java虚拟机我可以设置?我不能更改客户端代码,所以setSoTimeout()不是我的选择.
使用Windows XP
编辑:据了解,现在客户端没有打开套接字连接.它从服务器传递.所以我反编译了所有的服务器jar文件.但仍然无法找到关于超时的任何内容.
默认
套接字超时为0,这意味着永远不会超时.如果在5分钟后实际超时,这意味着它已经被设置在
代码中.如果源不可用,并且没有配置,您可以尝试反编译该类,并查找setSoTimeout
调用.
由于注释,以及搜索没有找到任何setSoTimeout()调用的事实,您可以采取不同的方法.只是让它超时,并写一个小脚本,将重试呼叫,以防万一.如果您可以从命令行调用客户端,则可以解析输出,如果它在stderr上.