检查PHP UDP fread是否收到回复/设置超时

时间:2011-07-12 12:07:44

标签: php udp

我正在创建一个使用UDP连接到本地网络上的Windows程序的网站。

我遇到的问题是,当fread没有回复时,当执行时间达到30秒时,代码会出现致命错误。

由于UDP没有检查它是否有连接,似乎无法分辨出发生了什么或捕获了30秒的致命错误。

这是我目前的代码。

$fp = fsockopen("udp://1.10.100.28", 24, $errno, $errstr,3);

    if (!$fp) {
        echo "ERROR: $errno - $errstr<br />\n";
    } else {
     $value = $_POST["sendvalue"];
     $out = "setwarpterm 1 1 x ".$value."\r";

     $write = fwrite($fp, $out);

     if($_POST["read"] == "yes"){
         echo fread($fp, 3000);
     }

        fclose($fp);
    }

1 个答案:

答案 0 :(得分:1)

暂停不起作用,因为它没有直接超出我的预期。

stream_set_timeout($fp, 2);
echo fread($fp, 3500);

这确实有效并使fread返回一个空字符串。