我正在创建一个使用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);
}
答案 0 :(得分:1)
暂停不起作用,因为它没有直接超出我的预期。
stream_set_timeout($fp, 2);
echo fread($fp, 3500);
这确实有效并使fread返回一个空字符串。