gpt4 book ai didi

python - 使用 python asyncore 从套接字读取固定数量的字节

转载 作者:太空宇宙 更新时间:2023-11-03 19:36:05 24 4
gpt4 key购买 nike

我使用 asyncore 使用“length:message”类型的协议(protocol)与远程服务器进行通信。有人可以推荐我一种从套接字读取确切字节数的方法吗?我试图使用handle_read来填充内部缓冲区并每次调用我的函数,检查缓冲区的大小,但它看起来太丑陋(检查缓冲区是否足够长以读取长度,检查缓冲区长度是否大于消息长度,读取消息等)。是否有可能有像“socket.read(bytes)”这样的东西,它会休眠直到缓冲区填满并返回值?

最佳答案

没有。 sleep 会破坏异步 IO 的全部目的。

但是,使用 twisted 来实现这一点非常简单。 .

from twisted.protocols.basic import Int32StringReceiver

class YourProtocol(Int32StringReceiver):
def connectionMade(self):
self.sendString('This string will automatically have its length '
'prepended before it\'s sent over the wire!')

def stringReceived(self, string):
print ('Received %r, which came in with a prefixed length, but which '
'has been stripped off for convenience.' % (string,))

关于python - 使用 python asyncore 从套接字读取固定数量的字节,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3484988/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com