J'ai une prise connectée. Quand j'utilise:
print (mySocket)
J'ai compris:
<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)>
Je peux également imprimer avec succès:
print (mySocket.family)
print (mySocket.proto)
Mais si j'essaie d'imprimer l'adresse:
print(mySocket.laddr)
Je reçois et erreur:
AttributeError: 'socket' object has no attribute 'laddr'
Comment imprimer les attributs laddr et raddr?
Essayez d'utiliser les méthodes .getsockname()
et .getpeername()
à la place. Comme indiqué dans la documentation de l'objet Socket seuls les champs family
, proto
et type
sont disponibles en tant qu'attributs.
>>> s.bind(('localhost',12345))
>>> s.getsockname()
('127.0.0.1', 12345)
Pour laddr
utilisez mySocket.getsockname()
et pour raddr
utilisez mySocket.getpeername()