检查PHP UDP fread是否收到回复/设置超时
我正在创建一个网站,使用UDP连接到本地网络上的windows程序 我遇到的问题是,当没有对检查PHP UDP fread是否收到回复/设置超时,php,udp,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 /&g
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);
}
$fp=fsockopen(“udp://1.10.100.28“,24,$errno,$errstr,3);
如果(!$fp){
echo“错误:$errno-$errstr
\n”;
}否则{
$value=$_POST[“sendvalue”];
$out=“setwarpterm 1 x”。$value.\r”;
$write=fwrite($fp,$out);
如果($_POST[“read”]=“yes”){
echo-fread($fp,3000);
}
fclose($fp);
}
超时不起作用,因为它不在我的fread正上方
stream_set_timeout($fp, 2);
echo fread($fp, 3500);
这确实起作用,使fread返回空字符串。超时不起作用,因为它不在fread的正上方
stream_set_timeout($fp, 2);
echo fread($fp, 3500);
这确实有效,并使fread返回一个空字符串。您到底想做什么?当脚本可以连接到程序时,它已经可以工作了。它只是向程序发送一个小字符串,然后返回一个处理过的字符串。问题是当连接失败时。UDP没有“连接”
fread
如果超时后无法获取任何数据,则返回空字符串。如果你想处理这种情况,你可以检查一下。用echo“hello”。fread(fp,3000美元)代码>如果服务器没有响应,它不会回显任何内容。另外,在致命错误出现之前,脚本输出的其余部分中没有回声。您到底想做什么?当脚本可以连接到程序时,脚本已经工作了。它只是向程序发送一个小字符串,然后返回一个处理过的字符串。问题是当连接失败时。UDP没有“连接”fread
如果超时后无法获取任何数据,则返回空字符串。如果你想处理这种情况,你可以检查一下。用echo“hello”。fread(fp,3000美元)代码>如果服务器没有响应,它不会回显任何内容。此外,在发生致命错误之前,脚本输出的其余部分中没有任何回声