【发布时间】:2017-10-18 08:02:11
【问题描述】:
我正在使用 Asyncio 在 python 中编写应用程序以进行网络连接。我也有类似的代码:
try:
data = await self._reader.readexactly(10000)
# Code that uses data
except IncompleteReadError as e:
data = e.parial
# More code
当我尝试运行此代码时,它似乎从未真正运行过。如果我在第二行设置断点,断点会跳闸,但函数的其余部分将被忽略。
我最接近错误的是来自 asyncio 记录器:
Traceback (most recent call last):
File "c:\python36\Lib\asyncio\selector_events.py", line 724, in _read_ready
data = self._sock.recv(self.max_size)
ConnectionAbortedError: [WinError 10053] An established connection was aborted by the software in your host machine
用data = await self._reader.read(10000) 替换第二行似乎可以解决这个问题,但是read() 并不能解决我的问题,我需要使用readexactly()。那么为什么readexactly() 会导致套接字错误而read() 不会呢?
【问题讨论】:
标签: python sockets python-asyncio