什么是粘包?socket中造成粘包的原因是什什么?哪些情況會發生粘包現象?
只有TCP有粘包現象,UDP永遠不會粘包粘包:在獲取數據時,出現數據的內容不是本應該接收的數據,如:對方第一次發送hello,第二次發送world,我方接收時,應該收兩次,一次是hello,一次是world,但事實上是一次收到helloworld,一次收到空,這種現象叫粘包
原因
粘包問題主要還是因為接收方不知道消息之間的界限,不知道一次性提取多少字節的數據所造成的。
什么情況會發生:
1、發送端需要等緩沖區滿才發送出去,造成粘包(發送數據時間間隔很短,數據了很小,會合到一起,產生粘包)
2、接收方不及時接收緩沖區的包,造成多個包接收(客戶端發送了一段數據,服務端只收了一小部分,服務端下次再收的時候還是從緩沖區拿上次遺留的數據,產生粘包)
以上內容為大家介紹了Python粘包,希望對大家有所幫助,如果想要了解更多Python相關知識,請關注IT培訓機構:千鋒教育。