recv接收到的資料中如果存在\r\n\r\n,回傳的長度就是\r\n\r\n前的資料的長度。???
uj5u.com熱心網友回復:
看 recv 的回傳值Return Value
If no error occurs, recv returns the number of bytes received and the buffer pointed to by the buf parameter will contain this data received. If the connection has been gracefully closed, the return value is zero.
Otherwise, a value of SOCKET_ERROR is returned, and a specific error code can be retrieved by calling WSAGetLastError.
uj5u.com熱心網友回復:
這個是你應用層自定義的協議決議規則,和recv函式應該沒什么關系吧~uj5u.com熱心網友回復:
recv回傳值就是這一次recv成功接收的位元組數。uj5u.com熱心網友回復:
recv回傳值就是這一次recv成功接收的位元組數uj5u.com熱心網友回復:
用二進制!!uj5u.com熱心網友回復:
buff大小是1024個自己,buff接滿了,卻回傳不是1024而是到\r\n\r\n的長度uj5u.com熱心網友回復:
流式通訊, 如果一次沒有讀完就需要自己拼接,而且還要考慮粘包,所以最好是弄一個簡單的協議做起止界定符,對字串就可以使用'\0'來區分是否是同一次傳輸uj5u.com熱心網友回復:
要是傳送的是檔案,而檔案中有\0怎么辦uj5u.com熱心網友回復:
\r\n各占一個位元組吧,\r\n\r\n這就是4個位元組了uj5u.com熱心網友回復:
試一下不就明白了嗎?問一萬次不如自己試一次轉載請註明出處,本文鏈接:https://www.uj5u.com/gongcheng/37059.html
標籤:網絡編程
上一篇:qt做moxa的頭檔案問題
