[Twisted-Python] Getting local UDP address/port
exarkun at twistedmatrix.com
exarkun at twistedmatrix.com
Sat Nov 14 08:11:50 MST 2009
On 03:02 pm, olivier.parisy at free.fr wrote:
>I am implementing a UDP protocol where a request is sent to a server
>through a connected UDP transport.
>
>I listen for the answer using reactor.listenUDP(0, myDatagramProtocol).
>
>The local port is not in itself significant (hence the 0), but the
>protocol require that I get the local IP address and port of the socket
>used to send the request (so that I can properly process the answser).
>
>How can I get this information ? datagramReceived only provides me with
>the source address and port of the answer (as can be expected).
The protocol's transport will give you this information via the getHost
method:
http://twistedmatrix.com/documents/current/api/twisted.internet.interfaces.IUDPTransport.html
However, unless you're using connected UDP, the platform may not bother
to give you a realistic local address (and perhaps sometimes even for
connected UDP it won't). And then there's always NAT.
Jean-Paul
More information about the Twisted-Python
mailing list