php socket客戶端時的超時問題

2021-10-06 07:46:13 字數 714 閱讀 9904

連線socket分為連線超時和讀取超時

$sock=stream_socket_client("www.google.com:80", $errno,$errstr,2);    那個數字是連線超時 ,比如連線google , 2秒就返回錯誤 , 這樣就不會一直等在那了

stream_set_timeout($sock,5);  這個數字是讀取資料的超時

stream_get_meta_data 可以在socket中返回元資料

比如下面的測試,因為http協議連線完就會被服務端斷掉,所以沒辦法使用長連線一直傳輸資料,需要在迴圈中不停的new物件建立連線

for($i=0;$i<1000;$i++)

$buf .= $s;

}$meta=stream_get_meta_data($sock);

var_dump("end",$meta,$sock);

}string(5) "start"

array(7)

string(3) "end"

array(7)

resource(175) of type (stream)

其中的timed_out就是讀取資料的超時,false為讀取沒超時

eof為是否已經到了檔案尾,如果是長連線這裡是不會到達檔案尾的,http協議這種短連線會讀完後連線就結束了

phpsocket客戶端以及伺服器例子

乙個菜鳥朋友,突然問了我這個問題.現在稍稍有點時間,就寫了乙個簡單的例子給他,順便貼上來 伺服器端 author 鄒顥 zouhao619 gmail.com class socketserver private function showerror error 開始進行socket伺服器端監聽埠 ...

phpsocket客戶端以及伺服器例子

乙個菜鳥朋友,突然問了我這個問題.現在稍稍有點時間,就寫了乙個簡單的例子給他,順便貼上來 伺服器端 author 鄒顥 zouhao619 gmail.com class socketserver private function showerror error 開始進行socket伺服器端監聽埠 ...

php socket客戶端及伺服器端應用例項

經常有朋友會對php的socket應用充滿疑惑,本文就以例項 作一講解,希望能對初學php的朋友起到一點幫助作用 具體 如下 1.伺服器端 class socketserver private function showerror error 開始進行socket伺服器端監聽埠 public fun...