搜尋

首頁  >  問答  >  主體

c++ - 不知道伺服器回傳多大的數據,php的 socket_read()怎麼接收完整資料?

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

淡淡烟草味淡淡烟草味2816 天前648

全部回覆(1)我來回復

  • phpcn_u1582

    phpcn_u15822017-05-16 13:11:13

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

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

    回覆
    0
  • 取消回覆