【问题标题】:fsockopen fgets for only a few seconds and close. Dont wait for full byte count. Just read for a few secondsfsockopen fgets 仅几秒钟然后关闭。不要等待完整的字节数。只需阅读几秒钟
【发布时间】:2019-10-13 02:36:54
【问题描述】:

我有以下代码

它本质上连接到本地服务器,发送命令并读回数据(128 字节。) 但是,有时是 1000 字节,有时是 4 字节。

我怎样才能让它只读取几秒钟然后关闭然后输出它收到的数据?

我在谷歌上找不到任何东西可以做到这一点。 服务器只是发送数据,然后基本上保持沉默(没有断开连接等),所以我只想读几秒钟到一个变量中,就是这样。

<?php
$fp = fsockopen("localhost", 3332, $errno, $errstr, 3);
if (!$fp) {
    echo "$errstr ($errno)<br />\n";
} else {
    fwrite($fp, "FSBC004000");

        echo fgets($fp, 128);

    fclose($fp);
}
}
?>

【问题讨论】:

    标签: php tcp fsockopen


    【解决方案1】:

    想通了!

    总是这样!花几天时间寻找答案.. 发布到 Stackoverflow... 在几分钟内自己回答。 ffs

    需要使用: stream_set_timeout($fp, 2);

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2019-08-03
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多