如何在访问套接字时为fread设置超时时间?

时间:2011-10-13 05:37:15

标签: php sockets settimeout fread

以下是我的代码。我希望在几秒钟后没有数据可读时,fread可以返回。我调用了stream_set_timeout。但它不起作用。我也叫了stream_get_meta_data。它还没有满足我的需求。我正在连接chat.facebook.com。

$fp = fsockopen($server, 8888, $errno, $errstr);

stream_socket_enable_crypto($fp, true, STREAM_CRYPTO_METHOD_TLS_CLIENT);

fwrite($fp, $xml);

stream_set_timeout($fp, 5);

$str = fread($fp,8192);//This code will hang when there don't have data to read.

1 个答案:

答案 0 :(得分:1)

如果您阅读了stream_set_timeout()的手册,您就知道stream_set_timeout()在超时的情况下唯一能做的就是设置{{1}返回的数组的'timed_out'键到真。

stream_get_meta_data()