stream_set_blocking
為資源流設置阻塞或者阻塞模式
函數名:stream_set_blocking()
適用版本:PHP 4 >= 4.3.0, PHP 5, PHP 7
用法:stream_set_blocking(resource $stream, bool $mode): bool
函數描述:stream_set_blocking()函數用於設置給定流的阻塞或非阻塞模式。
參數:
返回值:成功時返回true,失敗時返回false。
示例:
// 创建一个网络套接字流$socket = stream_socket_client('tcp://www.example.com:80', $errno, $errstr, 30); // 将套接字流设置为非阻塞模式if (!stream_set_blocking($socket, false)) { die('无法设置套接字流为非阻塞模式'); } // 发送HTTP请求fwrite($socket, "GET / HTTP/1.1\r\nHost: www.example.com\r\nConnection: Close\r\n\r\n"); // 读取响应$response = ''; while (!feof($socket)) { $response .= fread($socket, 8192); } // 关闭套接字流fclose($socket); echo $response;
上述示例中,我們首先創建了一個網絡套接字流,然後使用stream_set_blocking()函數將套接字流設置為非阻塞模式。接下來,我們發送HTTP請求並讀取響應。最後,關閉套接字流並輸出響應內容。
通過將套接字流設置為非阻塞模式,我們可以在等待響應時繼續執行其他操作,而不必等待服務器的響應。這對於處理大量並發請求或需要同時處理多個任務的情況非常有用。