2009-11-19 72 views
5

今天早些時候,我注意到一些調用php fwrite失敗,因爲目標套接字處於混合狀態。有很多連接停留在SYN_SENT中,並且看起來不會成爲失敗。在php中檢測早期失敗fwrite

如果x比特沒有通過線路傳輸,檢測這種情況並簡單地超時連接的最佳方法是什麼?

回答

2

我相信你正在尋找stream_set_timeout。舉個例子:

stream_set_timeout($fp, 2); 
fwrite($fp, "GET/HTTP/1.0\r\n\r\n"); 

您可以檢查超時是否發生通過檢查數據流的元數據:

$info = stream_get_meta_data($fp); 
// $info['timed_out'] == true : time-out has happened