stream_set_timeout — Establecer un perido de tiempo de espera en un flujo
意思就是在建立流的過程中設置超時,看下面代碼:
/**
* @param string $sendMsg 發送指定內容
* @param string $ip ip地址
* @param string $port 端口
* @return bool|string 返回讀取內容
*/
public function sndAgreement($sendMsg = '', $ip = '192.168.1.118', $port = '9100'){
// 創建UDP鏈接
$handle = stream_socket_client("udp://{$ip}:{$port}", $errno, $errstr,5);
// 不存在則異常
if( !$handle ){
die("ERROR: {$errno} - {$errstr}\n");
}
// 設置讀取超過4s爲超時
stream_set_timeout($handle, 4);
// 向句柄中發送數據
fwrite($handle, $sendMsg."\n");
// 讀取內容,設置大小爲1024字節
$result = fread($handle, 1024);
// 關閉句柄
fclose($handle);
// 返回讀取的內容
return $result;
}