[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