kev*_*rpe 5 python-3.x python-asyncio
我观察到 asyncio/Python3.4/Windows7 的一些罕见行为,其中asyncio.streams.StreamReader.read(byte_count)读取的字节数少于byte_count字节。我无法可靠地重现该行为,但如果有足够的网络活动(数千次读取),我可能会看到它一次。
的文档read(byte_count)说:  Read up to n bytes.
参考:https://docs.python.org/3/library/asyncio-stream.html#streamreader
英语短语“up to”表示它有时可能读得更少(!)。正如我最初理解协程的行为一样:在收到预期的字节数之前它不会返回。
read(byte_count)正确吗?我当前的解决方法是检查收到的字节数。如果不完整,则read(byte_count)使用剩余字节数再次调用。(但这似乎违背了 的目的read(byte_count)。)