我从使用java的android设备连接到使用DefaultHttpClient运行PHP的服务器。检测来自PHP的android java客户端连接超时
我正在做的一个测试是检查,如果服务器需要长时间发送数据,java代码会正常处理自身。如果确实需要很长时间,则会断开连接并重试。
目前我有设置在连接超时时间为3秒:
HttpConnectionParams.setSoTimeout(httpParameters, 3000);
在PHP脚本处于睡眠状态,持续10秒服务器:
sleep(10);
Java代码的工作,如果脚本需要3秒以上的时间,然后抛出一个java.net.SocketTimeoutException,然后在少量时间后重试。
PHP脚本继续运行,它是而不是我想要的。我试过在睡眠函数后直接使用connection_aborted进行测试,但它没有捕获已经发生的客户端断开连接。
ignore_user_abort(true);
sleep(10);
print "black hole";
flush();
if(connection_aborted()!=0){
// You would think this works but it does not.
}
建议如何处理?
什么相关的PHP代码是什么样子? – Phil
@在一条简单的线上睡10秒。 – zaf
@Phil我已经用connection_aborted添加了我的尝试 – zaf