确定异步套接字服务器中客户端的主机名

问题描述 投票:1回答:1

似乎有一种方法可以使用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())
python asyncio
1个回答
0
投票

您可以做:

addr =  writer.get_extra_info('peername')

根据docs

© www.soinside.com 2019 - 2024. All rights reserved.