c++ - 不知道伺服器回傳多大的數據,php的 socket_read()怎麼接收完整資料?
淡淡烟草味
淡淡烟草味 2017-05-16 13:09:13
0
1
610

如果伺服器發送的資料總是超過了客戶端所能承受的一次性接收最大位元組數,客戶端怎樣才能判斷接收的資料已經完整而不用再執行socket_read的操作,伺服器傳回的資料有多個/ n組成。嘗試過用while循環來讀取伺服器的數據,但是運行有問題。

淡淡烟草味
淡淡烟草味

全部回覆(1)
phpcn_u1582

如果是短鏈接,用 socket_set_nonblock 將 socket 鏈接設置為非阻塞,然後循環執行 socket_read ,當返回值長度為0時跳出循環,接收結束(這種方式在有些情況下會出問題)。

最好是服務端指定資料長度,這樣不會出錯。

熱門教學
更多>
最新下載
更多>
網站特效
網站源碼
網站素材
前端模板