国产+高潮+在线,国产 av 仑乱内谢,www国产亚洲精品久久,51国产偷自视频区视频,成人午夜精品网站在线观看

【已解決】Failed to connect to 172.16.0.26 port 8787: Address already in use

云端

新整個webman,放到Linux上,寫個簡單的方法:

public function index(Request $request)
{
    return response('hello webman');
}

windows本地,寫個for循環(huán):

for ($i = 0; $i < 10000; $i++) {
    echo '循環(huán):' . $i . '=>' . request_get($url) . PHP_EOL;
}

request_get方法:

function request_get(string $url, int $timeout = 10)
{
    $ch = curl_init();
    curl_setopt($ch, CURLOPT_URL, $url);
    curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
    curl_setopt($ch, CURLOPT_HEADER, false);
    curl_setopt($ch, CURLOPT_TIMEOUT, $timeout);

    $rs = curl_exec($ch);
    if (curl_errno($ch)) {
        $err_msg = curl_error($ch);
        curl_close($ch);
        return json_encode(['code' => 50, 'msg' => $err_msg]);
    } else {
        curl_close($ch);
        return $rs;
    }
}

結(jié)果后期提示:

Failed to connect to 172.16.0.26 port 8787: Address already in use

相關(guān)圖片:

這是什么原因呢?還請解惑。

2681 1 1
1個回答

xiuwang

curl是短連接,每次請求會占用本地一個端口,請求完畢后這個端口不會立刻釋放。本地端口有限,當(dāng)本地端口被快速用完就會報這個 Address already in use 錯誤了。
curl用長連接,也就是不主動curl_close,這樣就不會不斷的消耗本地端口,應(yīng)該就不會報錯了,request_get改成

function request_get(string $url, int $timeout = 10)
{
    static $ch;
    $ch = $ch ?: curl_init();
    curl_setopt($ch, CURLOPT_URL, $url);
    curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
    curl_setopt($ch, CURLOPT_HEADER, false);
    curl_setopt($ch, CURLOPT_TIMEOUT, $timeout);

    $rs = curl_exec($ch);
    if (curl_errno($ch)) {
        $err_msg = curl_error($ch);
        //curl_close($ch);
        return json_encode(['code' => 50, 'msg' => $err_msg]);
    } else {
        //curl_close($ch);
        return $rs;
    }
}
  • 云端 2022-07-21

    非常感謝,按照你的建議,的確不會出現(xiàn)這個問題了。謝謝。

年代過于久遠(yuǎn),無法發(fā)表回答
??