问题标签 [socket-timeout-exception]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
2 回答
7297 浏览

java - ConnectTimeout 和 ReadTimeout 无限时出现 SocketTimeoutException?

可能重复:
即使连接超时和读取超时设置为默认值(无限),仍接收请求超时?

我尝试连接到 Web 服务并SocketTimeoutException在大约 20 秒后收到。托管 Web 服务的 Tomcat 服务器已关闭,因此这Exception是意料之中的。但是,我没有设置 ConnectTimeout 和 ReadTimeout 的值。根据文档,这两个的默认值是无限的。

一种可能性是我尝试连接的服务器有自己的超时。但是当我的朋友尝试使用 iOS 连接到它时,他的连接在大约 1 分 15 秒后超时。如果服务器是发出超时的服务器,那么我们的连接应该几乎同时超时。请注意,他也在使用 iOS 的默认超时时间。

  • 当我的连接和读取超时设置为无限时,为什么我的套接字这么早就超时了?
  • 套接字超时与连接和读取超时是否不同?如果是这样,它有什么不同?
  • 如何知道我的套接字超时值?我正在使用 HttpURLConnection。
  • 有没有办法设置套接字超时?如何?

下面是我的代码片段:

0 投票
1 回答
2230 浏览

android - 调用 web 服务时的 SocketTimeout 异常

我在使用 android v4.0.3 的应用程序中使用 web 服务,但是当我到达 HttpTransportseShowsSocketTimeoutException并没有得到响应时。相同的代码在 android.v.2.2 中完美运行

我在 logcat 中得到以下异常

这是代码

0 投票
2 回答
396 浏览

c# - 是否可以在 TimedOut 异常后重用套接字?

简而言之,是否可以在捕获 TimedOut 异常后重用套接字?我该怎么做?

很长的故事:

我有 2 个线程,都使用同一个套接字。一个正在向远程服务器发送数据包(我们称之为线程 A),而另一个(线程 B)正在侦听这些已发送数据包的确认数据包。当满足某些条件时,线程 A 将暂停(使用Monitor.Wait),等待 aMonitor.Pulse继续。当线程 B 收到一个数据包时,它调用Monitor.Pulse并且线程 A 继续做它的事情......

问题是数据包可能会丢失,线程 B 将无限期地等待一个不会接收到的数据包,而线程 A 正在等待一个脉冲。整个程序将“阻塞”。我的第一个想法是设置接收超时并捕获相关的异常。发生这种情况时,我调用Monitor.Pulse线程 A 可以继续,而线程 B 将继续等待另一个数据包。

但这不起作用。当异常被捕获时,套接字将关闭,当线程 A 尝试发送新数据包时应用程序将崩溃,因为它们使用的是同一个套接字。

如何防止这种行为?

0 投票
4 回答
9084 浏览

java - 为什么我无法捕获 java.net.SocketTimeoutException?

我有一个简单的多线程服务器,线程的代码如下所示:

我想创建 3 分钟的超时,如果客户端套接字在 3 分钟内没有发送消息,则必须关闭线程...

所以我尝试这样做:

问题是 netbeans 显示错误消息: 在此处输入图像描述

我用 SocketException 尝试了这个,但结果相同..

为什么我抓不到他们?

更新:根据 thinksteep 和 mprabhat 的回复,我在 LireTrame(..) 中添加了th throw,但我仍然无法捕捉到异常:

有什么想法可以做到这一点吗?

0 投票
1 回答
458 浏览

android - HttpURLConnection readLine() 挂在 Sprint 4G 网络上

我有一个例程使用 HttpURLConnection 通过 multipart/form-data 内容类型上传文件。服务器对上传的文件进行一些处理并返回一个简短的响应代码。到目前为止,这在所有情况下都可以正常工作,除非一位用户在 4G 上使用 HTC Evo。如果用户切换到 3G,那么一切正常。当在 4G 上时,应用程序将等待while ((line = reader.readLine()) != null) {直到抛出套接字连接超时异常。我将连接超时设置为 70 秒。服务器在 php 这里是相关的片段

请注意,“BACKGROUND”响应有效,其余响应会导致客户端等待超时异常。我目前对此有 2 个想法,但我不在 4G 领域,所以我只能通过最终用户进行测试,我真的想限制尝试次数。我的第一个想法是“BACKGROUND”比“FailedQA”稍长,而另一个更长,它有一个数字开头。所以也许在响应中添加空格会有所帮助?另一个方面是响应时间。'BACKGROUND' 消息通常比其他消息发送得更快。但是,我这里有一个反例,所以我不是陛下。示例:“BACKGROUND”消息通常会在 15 到 20 秒内消失。其他消息通常为 30-40 秒。但是,我有一个例子,其中 '

总结一下:这只发生在 Sprint 4G 上。我怀疑可能是导致问题的内容长度或响应时间,但在这两种情况下,我都有一个相反的反例。除了长度情况之外,较长的反例示例以数字开头,所以就是这样。

0 投票
0 回答
1631 浏览

java - Mongodb Java Driver偶尔读取数据失败,socket超时

我正在尝试使用 Java 的 Mongodb 驱动程序,我对这个偶尔出现的错误感到非常沮丧,尽管最一致的是,它出现在我第一次尝试连接到数据库时。任何关于在哪里寻找的帮助都会非常有帮助。

设置基本上是这样的:我在 localhost 上启动我的 Play 2.0 应用程序,我尝试在我的应用程序上注册一个用户。当我输入用户名时,会向数据库发送一个查询以检查用户名是否存在,这需要一秒钟(可能是实例化 Mongo 单例和连接到数据库的开销)但似乎有效,我可以成功执行几个查询,例如这个:

然后当我尝试插入用户时出现问题(总共大约 2kb 的数据):

这偶尔会失败,但往往if(result.getLastError().ok())在线上失败。我真的无法解决这个问题,因为它会随机弹出。以下是堆栈跟踪通常的样子:

任何帮助将不胜感激,因为我无法真正弄清楚这里发生了什么,更有经验的人可能知道去哪里找。

一个可能也说明这一点的注意事项是,我尝试将更多数据加载到保存的对象中时,问题发生的频率越高。

谢谢!

0 投票
3 回答
5479 浏览

android - Android - setSoTimeout 不起作用

所以我遇到了一个不工作的套接字超时。我遵循了现有帖子给出的所有说明,但它仍然无法正常工作(我从未收到套接字超时异常)。这是我的代码:

所以我应该在两秒后得到一个套接字超时异常,但客户端只是忽略了这一点。有什么帮助吗?

提前致谢


所以这里是所有的代码:

0 投票
1 回答
2106 浏览

android - 在android应用程序中从http转换为https后的SocketTimeoutException

在尝试将我的 android 应用程序转换为使用 SSL 在我的 android 应用程序和 Web 服务器之间传输信息后,我遇到了一些问题。(SocketTimeOutException)

我从证书颁发机构 (CA) 购买了正 SSL 证书,并将我的服务器配置为正确使用它。我已经在我的网络浏览器中对其进行了测试,并且它工作正常。

现在我正在尝试修改我的 android 应用程序以使用 https 而不是 http,但由于这是我自己第一次使用 https,所以我对需要在 java 代码中实现哪些步骤感到有些困惑。

目前我正在我的设置页面上配置我的应用程序以使用正确的 url。例如,我在输入网站 url (http://www.mydomain.com) 和存储相关页面的应用程序文件夹 (myappfolder) 的活动中有 2 个文本字段

然后,我使用以下代码进行连接并测试连接变量是否配置正确,其中 validateurl.aspx 是一个网页,如果页面存在则返回 JSON 字符串:

现在,当我尝试将 (http://www.mydomain.com) 变量转换为使用 https 时,我得到了上面提到的 java.net.SocketTimeoutException。

我已经用谷歌搜索了这个问题,发现我应该在上面的代码中实现 HttpsURLConnection 而不是 URLConnection 所以我已经相应地修改了我的代码如下:

但是我仍然收到 java.net.SocketTimeoutException。任何想法我做错了什么?

0 投票
2 回答
18761 浏览

java - android中java.net.Socket的默认超时值是多少?

我正在为安卓开发一个移动应用程序。在那里,我创建了套接字并在 android 手机和 Windows 应用程序(在 pc、笔记本电脑上运行)之间传输数据。我正在使用安卓 2.3

测试手机samsung galaxy pop
电脑和手机通过 USB Tithering 连接。
数据传输正确。
但是一个问题是在应用程序中间,通过从系统中拔下移动 USB Caple 取消了十分之一,然后我抛出异常。

但有时它不会通过任何异常它只是等待,Socket也没有关闭等待数据读取
所以请在android中发送默认的socket超时时间


我的示例代码如下


当我使用代码时


然后它返回 0。


请大家给出你的想法。

0 投票
1 回答
403 浏览

android - wifi和GPRS上的android超时异常

贝娄是我调用服务的代码,但它给出了超时异常

它可以在模拟器上运行,但不能在实际设备上运行,如果错误,请提出任何教程或示例.......

谢谢x...