当前位置: 首页 > 面试题库 >

Java:套接字读取超时异常

仇飞鹏
2023-03-14
问题内容

我试图呼吁一个非常繁重的过程。平均工作时间估计为9-10分钟。

当我执行该过程时,我为一个巨大的数字设置了超时时间:99999999。

2分钟后,出现以下错误:

java.net.SocketTimeoutException:读取超时

我尝试对其进行更多处理,并将超时设置为3000,并且在预期的3秒钟后出现了相同的错误。

您对为什么socket.setSoTimeout(99999999)将其设置为最大120000 有任何想法吗?


问题答案:

我遇到了同样的问题,socket.shutdownInput();socket.shutDownOutput();直到最后一次向套接字读取或写入数据后才使用该解决方案
。这使套接字进入FIN_WAIT状态,因此等待2分钟再关闭。



 类似资料:
  • 这是来自.properties得my DB配置: 这是config.xml: 实际上,我可以很容易地访问我们的本地web应用程序,并且可以在日志中看到到DB的连接跟踪,但对于批处理来说,情况并非如此。 在我有了这个之后: 有人帮忙吗?

  • 一些背景: 我有一个使用3G或4G数据连接的Android应用程序。但它也连接到一个wifi热点,以便在热点设备和应用程序之间传输一些数据。 我想做的是:创建一个到这个wifi热点的套接字连接,并通过这个套接字发送/接收数据。 我添加了以下代码,以确保我们在创建套接字时使用wifi热点wifi(否则它有时最终会使用数据连接): 这似乎没问题。但是,我在尝试连接到远程服务器地址时发现问题。下面是我正

  • 问题内容: 我正在使用API(,和,和朋友)对远程服务器进行Web服务调用,这在很大程度上取得了很大的成功。 但是,有时会出现问题,并且程序永远卡住。 为了解决这个问题,我想添加一个读取超时。 我发现有几种方法可以实现这一目标,但它们似乎都非常糟糕。 所以我对社区的问题是:使用javax.xml.soap API进行调用时,实现读取超时行为的最佳方法是什么? 问题答案: 您必须创建自己的URLSt

  • 如果主机名是正确的,但没有套接字服务器侦听端口,这行可能会在引发异常前几分钟工作。我可以设置通信超时吗?此外,是否可以停止此进程-目前它不响应AsyncTask.Cancel调用。

  • 问题内容: 我看到了一些原因(请参阅下面的堆栈跟踪)。也就是说,客户端无法在超时(30秒)内获得响应。现在我想知道如何解决它。 简单的解决方案是增加超时时间,但是我想首先了解根本原因。你有什么建议? 由java.net.SocketTimeoutException引起:读取超时 问题答案: 这些超时是否在闲置一段时间后发生?空闲时间过长后,连接池可能已过时。 如果是这样,有两种解决方法: 捕获套接

  • 我有java服务器和只有一个客户端的时间。 客户端连接并发送卡ID(在服务器端阻止读取是合适的,因为当时只有一个客户端)