标签: connection-timeout

php fsockopen如何知道连接是否存活

我有php fsockopen命令的问题.

我需要在服务器上打开套接字连接以实现消息交换.如果服务器没有从我的(客户端)端收到任何东西,它会在一定的超时后关闭连接(我不知道我不能改变).

问题是......我怎么知道几分钟前套接字是否仍然存在?

这是我用来打开连接的脚本

$socket = fsockopen("automation.srv.st.com", 7777, $errno, $errstr);
if ($socket === false) {
    echo "Unable to open Socket. Error {$errno} : {$errstr}\n";
    die();
}
$status = stream_get_meta_data($socket);
print_r($status);
Run Code Online (Sandbox Code Playgroud)

它打印出来

Array
(
    [stream_type] => tcp_socket/ssl
    [mode] => r+
    [unread_bytes] => 0
    [seekable] =>
    [timed_out] =>
    [blocked] => 1
    [eof] =>
)
Run Code Online (Sandbox Code Playgroud)

然后写入服务器的每条消息......

 fwrite($socket, $message);
Run Code Online (Sandbox Code Playgroud)

...我在200ms内收到反馈:

 $answer = fread($socket, 1024);
Run Code Online (Sandbox Code Playgroud)

但是如果我的脚本花了30分钟没有向服务器发送任何消息(因为它没有任何通信),那么服务器会自动关闭连接,我无法理解如何在重新实例化新连接之前检查它:

如果尝试过

if ($socket)    echo "The socket is still having a valid resource\n";
Run Code Online (Sandbox Code Playgroud)

但这会回复我的$ socket仍然是一个有效的流资源

我试过了

$status = stream_get_meta_data($socket); …
Run Code Online (Sandbox Code Playgroud)

php sockets fsockopen connection-timeout

6
推荐指数
1
解决办法
5404
查看次数

如果请求超时,HttpClient将多次执行请求

HttpClient如果超时,则执行请求4次。如果它没有超时,则说明工作正常。有关系HttpClient吗?

java android httpclient connection-timeout

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

Oracle Data Provider for .NET:连接请求超时

我们在Windows 2008 SP2/IIS 7上托管了一个访问Oracle数据库的C#WCF Web服务.通常数据访问工作正常,但在负载测试期间,它经常超时并记录和异常说:

Error occurred when processing XXXXXXXX Web Service
Oracle.DataAccess.Client.OracleException Connection request timed out at Oracle.DataAccess.Client.OracleException.HandleErrorHelper(Int32 errCode, OracleConnection conn, IntPtr opsErrCtx, OpoSqlValCtx* pOpoSqlValCtx, Object src, String procedure, Boolean bCheck)
   at Oracle.DataAccess.Client.OracleException.HandleError(Int32 errCode, OracleConnection conn, IntPtr opsErrCtx, Object src)
   at Oracle.DataAccess.Client.OracleConnection.Open()
   at MyWorkspace.WorkForceDataAccess.CheckStaffIdInRSW()
   at MyWorkspace.MyClass.MyFunction(MyDataType MyData)
Run Code Online (Sandbox Code Playgroud)

要查询数据库,我们使用以下内容:

OracleConnection orConn = new OracleConnection();
orConn.ConnectionString = "user id=xxx; password=xxx; Connection Timeout=600; Max Pool Size=150; data source= (DESCRIPTION =(ADDRESS = (PROTOCOL = TCP)(HOST = MYHOST.MYDOMAIN.com)(PORT = 1771)) (CONNECT_DATA =(SERVER = DEDICATED)(SERVICE_NAME …
Run Code Online (Sandbox Code Playgroud)

c# oracle wcf timeout connection-timeout

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

如何解决Android中的org.apache.http.conn.ConnectTimeoutException?

我正在从事与服务相关的应用程序.

DefaultHttpClient httpClient = new DefaultHttpClient();
            HttpParams params = httpClient.getParams();
            HttpConnectionParams.setConnectionTimeout(params, 10000000);
            HttpConnectionParams.setSoTimeout(params, 15000000);
            HttpProtocolParams.setUseExpectContinue(httpClient.getParams(),true);

            String str_Server_Host = Control_PWD_Server_Name();
            String requestEnvelope = String.format(envelope_oe);
            // HttpPost httpPost = new HttpPost(str_Server_Host);
            HttpPost httpPost = new HttpPost(str_Server_Host);
            httpPost.setHeader("SOAPAction",
                    "http://tempuri.org/updateTransportStatus");
            httpPost.setHeader("Content-Type", "text/xml;charset=utf-8");
            httpPost.setEntity(new StringEntity(requestEnvelope));
            HttpResponse httpResponse = httpClient.execute(httpPost);
            HttpEntity httpEntity = httpResponse.getEntity();

            line = EntityUtils.toString(httpEntity);
            String str = Html.fromHtml(line).toString();
Run Code Online (Sandbox Code Playgroud)

这是我得到的例外:

org.apache.http.conn.ConnectTimeoutException: Connect to /10.64.0.184:9092 timed out
Run Code Online (Sandbox Code Playgroud)

如何解决android中的上述异常?请提供任何建议或相关的senario.

java android web-services exception connection-timeout

5
推荐指数
0
解决办法
7785
查看次数

Node.js:http 请求在 1 分钟后超时

http.request我正在使用 Node.js(版本 0.10.28)为大量数据(来自 PostgreSQL 数据库的 21,000 行)创建 Ruby API 。问题是请求似乎超时并在 1 分钟后返回 404 错误。我知道这是真的,因为 Ruby API 返回 61 秒的请求,并且我计算了 Node 的请求花费的时间(结果为 60 秒和 404)。但是,如果我wget使用 jQuery,$.ajax超时时间为 4 分钟,我可以获得 21,000 行。很明显,它不可能是 404,因为还有其他获取数据的方式。

我也有点困惑,因为无论我看什么,http.request根据以下说法,直到 2 分钟后才应该超时:

Node.js 文档

GitHub 问题#1

GitHub 问题#2

我尝试了几种方法来使其正常工作,包括:设置express的中间件侦听套接字超时并恢复请求;并将超时设置为0,这样就不会超时。不幸的是,这些方法都不起作用,或者至少从我的理解来看是这样。

为了清楚起见,这是我的代码...设置该限制意味着仅返回 18,000 条记录,这似乎是 API 花费超过 60 秒的截止点:

var http = require('http');
var options = {
  path: '/api/records.json?limit=18000',
  method: 'GET',
  host: 'localhost',
  requestCert: true,
  rejectUnauthorized: false
};
var req = …
Run Code Online (Sandbox Code Playgroud)

javascript connection-timeout node.js express

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

Microsoft Hive ODBC 驱动程序 2.1.5 超时

我最近升级到 2016 年 8 月 12 日发布的 Microsoft hive odbc 驱动程序版本 2.01.05.1006。我的代码适用于驱动程序的先前版本 (1.0)。现在在运行我的代码时,我不断收到以下错误。

错误 [HY000] [Microsoft][Hardy] (72) 查询执行超时已过期。

我已尝试更改 ODBC 驱动程序的超时设置,但它仍然超时。有人有其他建议吗?

odbc hive connection-timeout

5
推荐指数
0
解决办法
867
查看次数

keepAliveTimeout 和连接超时有什么区别。如何在标题中检查 keepAliveTimeout?

keepAliveTimeout 和连接超时有什么区别吗?我正在使用带有 express 的 node.js。我已指定超时如下:

const app = express();
app.listen(3000, '0.0.0.0', () => {
  console.log(`The server is running at http://localhost:3000/`);
});
app.on('connection', (socket) => {
  socket.setTimeout(60 * 1000);
});
Run Code Online (Sandbox Code Playgroud)

上面的代码会改变 keepAliveTimeout 吗?在浏览器中,我在浏览器中得到的只是Connection: keep-alive标题。如何检查我的应用程序的 keepAliveTimeout ?

javascript http keep-alive connection-timeout node.js

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

com.datastax.oss.driver.api.core.DriverTimeoutException: 查询 'SELECT * FROM system.peers' 在 PT0.5S 后超时

我正在尝试将 Kafka Streams 聚合结果插入到 Cassandra 中。但是我在 500 毫秒后连接期间出现超时错误。为什么会发生这种情况以及如何增加此超时或是否可以关闭此查询?

Caused by: com.datastax.oss.driver.api.core.DriverTimeoutException: query 'SELECT * FROM system.peers' timed out after PT0.5S
    at com.datastax.oss.driver.api.core.DriverTimeoutException.copy(DriverTimeoutException.java:34)
    at com.datastax.oss.driver.internal.core.util.concurrent.CompletableFutures.getUninterruptibly(CompletableFutures.java:149)
    at com.datastax.oss.driver.api.core.session.SessionBuilder.build(SessionBuilder.java:612)
    at aggregator.sink.CassandraSink.connect(CassandraSink.java:94)
    at aggregator.sink.CassandraSink.init(CassandraSink.java:62)
    at aggregator.sink.CassandraSink_ClientProxy.init(CassandraSink_ClientProxy.zig:253)
    at org.apache.kafka.streams.processor.internals.ProcessorNode.lambda$init$0(ProcessorNode.java:97)
    at org.apache.kafka.streams.processor.internals.metrics.StreamsMetricsImpl.maybeMeasureLatency(StreamsMetricsImpl.java:806)
    at org.apache.kafka.streams.processor.internals.ProcessorNode.init(ProcessorNode.java:94)
Run Code Online (Sandbox Code Playgroud)

datastax-java-driver 配置:

Caused by: com.datastax.oss.driver.api.core.DriverTimeoutException: query 'SELECT * FROM system.peers' timed out after PT0.5S
    at com.datastax.oss.driver.api.core.DriverTimeoutException.copy(DriverTimeoutException.java:34)
    at com.datastax.oss.driver.internal.core.util.concurrent.CompletableFutures.getUninterruptibly(CompletableFutures.java:149)
    at com.datastax.oss.driver.api.core.session.SessionBuilder.build(SessionBuilder.java:612)
    at aggregator.sink.CassandraSink.connect(CassandraSink.java:94)
    at aggregator.sink.CassandraSink.init(CassandraSink.java:62)
    at aggregator.sink.CassandraSink_ClientProxy.init(CassandraSink_ClientProxy.zig:253)
    at org.apache.kafka.streams.processor.internals.ProcessorNode.lambda$init$0(ProcessorNode.java:97)
    at org.apache.kafka.streams.processor.internals.metrics.StreamsMetricsImpl.maybeMeasureLatency(StreamsMetricsImpl.java:806)
    at org.apache.kafka.streams.processor.internals.ProcessorNode.init(ProcessorNode.java:94)
Run Code Online (Sandbox Code Playgroud)
datastax-java-driver.basic.contact-points.0=10.0.111.61:9042
datastax-java-driver.basic.load-balancing-policy.local-datacenter=datacenter1
datastax-java-driver.basic.session-keyspace=my_ks
datastax-java-driver.basic.request.timeout=20 seconds
datastax-java-driver.advanced.auth-provider.class=PlainTextAuthProvider
datastax-java-driver.advanced.auth-provider.username=${CASSANDRA_USR}
datastax-java-driver.advanced.auth-provider.password=${CASSANDRA_PWD}
datastax-java-driver.advanced.protocol.version=V4
datastax-java-driver.advanced.timestamp-generator.force-java-clock=true …
Run Code Online (Sandbox Code Playgroud)

java cassandra connection-timeout datastax-java-driver

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

如何更改 OpenShift 中路由的 HTTP 请求响应允许的超时?

OpenShift 4.6

OpenShift 中有一个基本设置:[Pod <- Service <- Route]。Pod 中运行的服务的 HTTP 端点响应时间为 90 秒或更长时间。在某些情况下这是正常的,所以我愿意允许这种行为。

然而,在发送对路由的请求(并且响应没有返回)之后(大约 60-70 秒),路由会响应HTTP 504

<html>
<body>
    <h1>504 Gateway Time-out</h1>
    The server didn't respond in time.
</body>
</html>
Run Code Online (Sandbox Code Playgroud)

我不确定 OpenShift 在什么时候决定断开电路,而且我找不到任何允许更改此超时的配置选项。

如何为服务和 Pod 设置自定义超时以延长请求-响应周期的持续时间?

timeout connection-timeout openshift kubernetes

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

Pub 已完成,退出代码为 69

在我的 flutter 应用程序中安装 tflite 包时。几分钟后 flutter pub get 无法工作,它显示连接超时服务器不可用,尽管正在安装其他包。

android connection-timeout dart flutter pubspec

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