我有一个连接的插座.我用的时候:
print (mySocket)
Run Code Online (Sandbox Code Playgroud)
我明白了:
<socket.socket fd=376, family=AddressFamily.AF_INET, type=SocketKind.SOCK_STREAM, proto=0, laddr=('192.168.31.244', 4160), raddr=('192.168.31.244', 7061)>
我也可以成功打印:
print (mySocket.family)
print (mySocket.proto)
Run Code Online (Sandbox Code Playgroud)
但是,如果我尝试打印地址:
print(mySocket.laddr)
Run Code Online (Sandbox Code Playgroud)
我得到并且错误:
AttributeError: 'socket' object has no attribute 'laddr'
Run Code Online (Sandbox Code Playgroud)
如何打印laddr和raddr属性?
Amb*_*ber 15
请尝试使用.getsockname()和.getpeername()方法.如Socket对象文档中所述family,只有proto,和type字段可用作属性.
>>> s.bind(('localhost',12345))
>>> s.getsockname()
('127.0.0.1', 12345)
Run Code Online (Sandbox Code Playgroud)