7
根據the documentation,socket_read()
在遠程主機關閉連接時應該返回FALSE
,並且在沒有更多數據要讀取時返回空字符串''
。但是,在測試期間,即使關閉遠程主機連接,它也不會返回FALSE
。下面是相關代碼:PHP - 檢測遠程主機斷開連接
$data = '';
do {
$read = socket_read($socket, 1024);
if ($read === FALSE) {
throw new SocketDisconnectException();
}
$data .= $read;
} while ($read !== '');
的SocketDisconnectException
永遠不會被拋出,甚至當我斷開遠程主機連接。我有兩倍和三倍的檢查,我沒有捕捉到異常並放棄它,甚至把echo
和exit
作爲完整性檢查條件。
此功能的行爲是否改變了,還是我做錯了什麼?