繁体   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