国产+高潮+在线,国产 av 仑乱内谢,www国产亚洲精品久久,51国产偷自视频区视频,成人午夜精品网站在线观看

如何處理設備發(fā)送過來的流數(shù)據(jù),tcp協(xié)議的

hyet

[attach]2430[/attach]
通訊協(xié)議如上,現(xiàn)在測試的情況是,設備1kb發(fā)送數(shù)據(jù)沒有啥問題,但是2kb的時候,會出現(xiàn)數(shù)據(jù)少的情況,但不是丟包情況,是包中的丟了一段數(shù)據(jù)的情況,不知道改如何處理

3138 1 0
1個回答

latin

你這個問題應該是傳說中的數(shù)據(jù)被分段傳輸了。
?tcp數(shù)據(jù)傳輸沒有邊界,數(shù)據(jù)可能會被分成多個包傳輸(當數(shù)據(jù)大于某個值好像是1.4k就會被分段傳輸,印象中是這個值),也可能多個包連在一起傳輸(傳輸?shù)臄?shù)據(jù)不夠1.4k,剛好還有下一個tcp數(shù)據(jù)傳輸,會帶上下一個包的部分數(shù)據(jù))。
?
比如你傳輸?shù)氖?2k的數(shù)據(jù),tcp底層會分成2個包傳輸,所以你在onMessage里看到的數(shù)據(jù)是部分數(shù)據(jù),可能只有頭沒尾,也可能是只有尾沒有頭。但是如果你把每次onMessage里的數(shù)據(jù)追加在文件里,你會發(fā)現(xiàn)文件里的數(shù)據(jù)是完整的。
?
按照官方的說法,你要搞個通訊協(xié)議來分包。
http://doc.workerman.net/protocols/why-protocols.html

  • hyet 2019-09-19

    但現(xiàn)在我發(fā)一個64KB的圖片,服務器接受到的數(shù)據(jù)才50多KB ,抓包發(fā)現(xiàn),數(shù)據(jù)都傳過來了,但不知道為什么數(shù)據(jù)會少,如何粘包的情況,數(shù)據(jù)應該會多吧

  • latin 2019-09-19

    不管是分包還是粘包總數(shù)據(jù)都不會多,也不會少

年代過于久遠,無法發(fā)表回答
??