繁体   English   中英

Python socket.send 的大小是否有限制?

[英]Is Python socket.send limited in size?

我有一个bytearray 我用len检查了它的大小,它是 15.000 字节。 但是,当通过s.send()发送它时,其中s是一个套接字,只发送了 6000 个字节。

这是正常的吗? 下一个send调用甚至不发送 rest。

是的,这很正常。 kernel 保留的套接字缓冲区只有这么大。 您可以设置一个循环:

while data:
    transmitted = s.send(data)
    data = data[transmitted:]

或调用s.sendall(data) ,它本质上是为你做的。

如果您想接收比限制更多的字节,Python 文件中的某处应该有以下代码。

client.recv(1024)

在上面的例子中,1024 是从客户端读取的字节数。
如果您想要更多字节,可以执行以下操作。

bytes_to_recv = "something"
client.recv(bytes)

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM