相关疑难解决方法(0)

TCP套接字连接是否"保持活动"?

我听说过HTTP keep-alive但是现在我想打开一个与远程服务器的套接字连接.
现在这个套接字连接是否会永远保持打开状态,或者是否存在与之相关的超时限制,类似于HTTP keep-alive?

java sockets tcp http keep-alive

77
推荐指数
5
解决办法
13万
查看次数

套接字连接和轮询.哪种电池寿命更好?

所以...我正在为Android制作应用程序.应用程序需要发送和接收实时聊天数据(需要是一个套接字),但它也需要发送命令(这不是客户端在发送内容时知道的).

我需要知道在节省用户电池方面什么是更好的解决方案.

a)每次发送命令时打开和关闭连接,如果打开聊天选项卡,则保持连接不变.

b)始终保持连接不变.

我已经浏览了一下互联网,但得到了不同的答案,有人说保持持久的连接对电池寿命有害,而另一些人则认为不是(例如:"你问是否打开TCP连接会耗尽电池电量- 生活?也许我在这里不过了,但打开连接不应该浪费电池寿命......如果你认为我会想知道你在哪里得到这些信息.这对我来说听起来很奇怪.")

或者,如果有另一种解决方案会更好.我不认为谷歌的C2DM在这种情况下也会非常有用.

基本上,更多的是耗尽电池:持久连接,或者打开和关闭连接,除非聊天标签打开?

谢谢!

sockets android battery tcp polling

40
推荐指数
1
解决办法
2万
查看次数

如果 Android 中的 HttpGet 操作持续时间过长,如何避免出现错误 10053 (WSAECONNABORTED)?

我有一个 Android 应用程序使用 Indy 10 TIdHttpServer(Delphi 2006 附带)与 Delphi 2006 Web 服务应用程序进行通信。Delphi 应用程序生成一个大的 XML 文件并为其提供服务。XML 生成可能持续超过 5 分钟。

如果持续时间GenerateXml()超过大约 5 分钟 (*),TIdHTTPResponseInfo.WriteContent如果在 Delphi IDE 中运行,我会检测到错误 10053:

Socket Error # 10053 Software caused connection abort.
Run Code Online (Sandbox Code Playgroud)

然而,在 android 端没有检测到任何内容,并且HttpGet-call 会永远持续。

我的问题是:

1.) 为什么会收到错误 10053 以及如何避免它?看起来像android超时连接,但http.socket.timeout设置为无限。

2.) 我能做些什么来检测客户端的此类错误(除了设置超时,该超时必须太大而无用)?我可以在 TIdHttpServer.OnException 中做一些事情吗?

这是我的代码。Android - 下载函数,在 AsyncTask 内运行:

protected static HttpEntity downloadEntity(String url) throws IOException {
    HttpClient client = new DefaultHttpClient();  

    //Check because of Error 10053: but …
Run Code Online (Sandbox Code Playgroud)

delphi android http indy delphi-2006

5
推荐指数
1
解决办法
8253
查看次数

标签 统计

android ×2

http ×2

sockets ×2

tcp ×2

battery ×1

delphi ×1

delphi-2006 ×1

indy ×1

java ×1

keep-alive ×1

polling ×1