python socket编程中建立连接后如何获取客户端的IP地址?

Luc*_*fer 5 python sockets serversocket peer python-3.x

我写了一个套接字程序来发送一个文件并从套接字接收一个字符串在其中我指定了客户端(写了客户端的 ip 地址)我想动态获取该客户端地址,我尝试了 .getpeername() 函数但得到错误

我尝试了 .getpeername() 函数但出现错误

#host = '10.66.227.181'   # fixed ip of one client only
client_socket = socket.socket()
host = client_socket.getpeername()
print(clientip)
port = 8000
print(host,port)
client_socket.connect(host,port)
Run Code Online (Sandbox Code Playgroud)

clientip = socket.gethostname(client_socket.getpeername()) OSError: [WinError 10057] 不允许发送或接收数据的请求,因为套接字未连接并且(使用 sendto 调用在数据报套接字上发送时)未提供地址

Fre*_*ode 6

如果未连接 UDP 套接字,则没有对等方。所以不能有对等名称。如果它已连接,您就已经知道如何连接它。

client_socket = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
client_socket.connect(host,port)
host, port = client_socket.getpeername()
Run Code Online (Sandbox Code Playgroud)