导入了websockets模块,用https://pypi.org/project/websockets/主页上的客户端和服务端范例代码跑了一下
服务端
import asyncio
import websockets
async def echo(websocket, path):
async for message in websocket:
await websocket.send(message)
asyncio.get_event_loop().run_until_complete(
websockets.serve(echo, '192.168.0.100', 8765))
asyncio.get_event_loop().run_forever()
客户端
#!/usr/bin/env python
import asyncio
import websockets
async def hello(uri):
async with websockets.connect(uri) as websocket:
await websocket.send("Hello world!")
await websocket.recv()
asyncio.get_event_loop().run_until_complete(
hello('ws://192.168.0.100:8765'))
server和client都能正常运行
但是client一旦运行超server发送数据的时候,server就会报异常
异常信息:
Accept failed on a socket
socket: <asyncio.TransportSocket fd=424, family=AddressFamily.AF_INET, type=SocketKind.SOCK_STREAM, proto=6, laddr=('192.168.0.100', 8765)>
Traceback (most recent call last):
File "D:\Python38\lib\asyncio\proactor_events.py", line 801, in loop
conn, addr = f.result()
File "D:\Python38\lib\asyncio\windows_events.py", line 808, in _poll
value = callback(transferred, key, ov)
File "D:\Python38\lib\asyncio\windows_events.py", line 557, in finish_accept
return conn, conn.getpeername()
OSError: [WinError 10014] 系统检测到在一个调用中尝试使用指针参数时的无效指针地址。
Task exception was never retrieved
future: <Task finished name='Task-3' coro=<IocpProactor.accept.<locals>.accept_coro() done, defined at D:\Python38\lib\asyncio\windows_events.py:559> exception=OSError(10014, '系统检测到在一个调用中尝试使用指针参数时的无效指针地址。', None, 10014, None)>
Traceback (most recent call last):
File "D:\Python38\lib\asyncio\windows_events.py", line 562, in accept_coro
await future
File "D:\Python38\lib\asyncio\proactor_events.py", line 801, in loop
conn, addr = f.result()
File "D:\Python38\lib\asyncio\windows_events.py", line 808, in _poll
value = callback(transferred, key, ov)
File "D:\Python38\lib\asyncio\windows_events.py", line 557, in finish_accept
return conn, conn.getpeername()
OSError: [WinError 10014] 系统检测到在一个调用中尝试使用指针参数时的无效指针地址。
求指教