簡體   English   中英

Python從TCP套接字接收數據

[英]Python receive data from tcp socket

說我們有:

s = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
data = s.recv(1024)

如果我們收到消息,但最后一條消息不是1024字節,該怎么辦。 我們會仍然收到還是永遠等待? 如果最后一條消息沒有填滿緩沖區或什么都不填,如何接收?

在Node.js中,流具有“沖洗”行為,其中沖洗在內部被調用(不確定何時),如下所示: https : //github.com/ORESoftware/json-parser/blob/master/src/index.ts

It is not 1024

可能意味着很多事情,可能意味着:

  • 它小於1024字節:無論如何這次您將接收部分數據,如果還有其他要接收的內容,則在執行另一個recv(..)時就會收到。
  • 它大於1024字節:您將收到1024字節的數據,其余的數據將被緩沖,等待另一個觸發recv(..)
  • 沒有接收數據:recv(..)將等待直到有一個recv數據,可以通過設置超時來更改

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM