【发布时间】:2021-02-10 17:24:09
【问题描述】:
我正在尝试使用pysctp 套接字实现基于 SCTP 和 asyncio 的客户端。理想情况下,我想做这样的事情:
async def sctp_client():
sock = sctp.sctpsocket_udp(socket.AF_INET)
reader, writer = await asyncio.open_connection(sock=sock)
writer.write(b'some data', ppid=5)
await writer.drain()
data = await reader.read(100)
print(f'Received: {data.decode()}')
writer.close()
await writer.wait_closed()
在实践中,有两个问题:
-
有没有办法将“运输工厂”传递给
open_connection或loop.create_connection? 我希望流包含的传输对象使用sctp_recv而不是recv和sctp_send而不是send。显然,最简单的方法是从原始传输类派生,但我找不到一个好的 Python 方法。 -
有没有办法从
open_connection获得自定义StreamWriter? 显然我可以从原始文件中创建自己的,向原始文件添加方法或仅访问内部传输,但这些选项是非常丑陋。我能想到的第二个最佳方法就是使用loop.create_connection实现我自己的open_connection。
非常感谢!
【问题讨论】:
标签: python python-asyncio sctp