我正在尝试扩展python异步HTTP服务器示例,该示例使用流式读写器(code)。如果我理解正确,示例处理程序将从读取器读取100个字节,并通过writer将其回传给客户机。我试图读取超过100个字节。。。一直读到没什么好读的就好了。
我试着让read()函数尽可能多地读取
data = yield from reader.read()
但这似乎永远阻止不了。所以我试着读到了EOF
while not reader.at_eof():
data += yield from reader.read(100)
虽然这会检索更多的数据,但似乎会阻塞read调用,而不是退出while循环。
如何使用流读取器从客户端获取整个消息?
就像这样:
确定EOF的用途
代替
参见文档(aiohttp):read返回一个空字节字符串
在EOF上,所以要明确地检查它。
注意:如果您希望在从服务器传递数据块时一直读取到数据块的末尾,请签出
(但没有测试。)
在开始前使用feed。
您应该检查^{} 是否返回空字节对象以表示EOF:
另外,如果您需要一个功能齐全的HTTP客户端,可以考虑使用^{} 。
相关问题 更多 >
编程相关推荐