PHP UDP協議時超時設置

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;
    }

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章