Python 确定异步IO套接字服务器中客户端的主机名
看起来有一种方法可以使用Python 确定异步IO套接字服务器中客户端的主机名,python,python-asyncio,Python,Python Asyncio,看起来有一种方法可以使用socket.getpeername()获取普通旧套接字的标识符。但是,在使用asyncio.start\u server时,似乎没有任何方法可以访问套接字。是否有任何方法可以为异步IO套接字服务器获取客户端的唯一标识符(例如IP地址) async def client_handler(reader: StreamReader, writer: StreamWriter): print("Client connected at {some_ip_address_o
socket.getpeername()
获取普通旧套接字的标识符。但是,在使用asyncio.start\u server
时,似乎没有任何方法可以访问套接字。是否有任何方法可以为异步IO套接字服务器获取客户端的唯一标识符(例如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())
您只需执行以下操作:
addr = writer.get_extra_info('peername')
根据mm。。你检查过这里的例子了吗。看起来你可以做writer。获取额外信息(“peername”)来获取地址,还是我错了?@ranifisch啊,谢谢,我没意识到StreamWriter有这个功能。