【发布时间】:2019-12-02 14:43:40
【问题描述】:
看起来有一种方法可以使用socket.getpeername() 获取普通旧套接字的标识符。但是,使用asyncio.start_server 时似乎没有任何方法可以访问套接字。有没有办法为异步套接字服务器获取客户端的唯一标识符(例如 IP 地址)?
async def client_handler(reader: StreamReader, writer: StreamWriter):
print("Client connected at {some_ip_address_or_identifier}") # ?
async def main():
IP = "0.0.0.0"
PORT = 8080
loop = asyncio.get_event_loop()
server = await asyncio.start_server(client_handler, IP, PORT)
await server.serve_forever()
asyncio.run(main())
【问题讨论】:
-
mm.. 你检查过这里的例子吗? docs.python.org/3/library/asyncio-stream.html。看起来你可以做 writer.get_extra_info('peername') 来获取地址,还是我错了?
-
@ranifisch 啊,谢谢,我不知道
StreamWriter有这个。
标签: python python-asyncio