我有一个连接套接字。当我使用时:
print (mySocket)
我明白了:
<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)
但如果我尝试打印地址:
print(mySocket.laddr)
我得到并且错误:
AttributeError: 'socket' object has no attribute 'laddr'
如何打印 laddr 和 raddr 属性?
答案 0 :(得分:10)
请尝试使用.getsockname()
和.getpeername()
方法。如上所述in the Socket object docs,只有family
,proto
和type
字段可用作属性。
>>> s.bind(('localhost',12345))
>>> s.getsockname()
('127.0.0.1', 12345)
答案 1 :(得分:2)
laddr
使用mySocket.getsockname()
使用raddr
使用mySocket.getpeername()