[Twisted-Python] multiple connectTCP bindaddress problem
Tommi Virtanen
tv at twistedmatrix.com
Thu Nov 4 23:01:55 MST 2004
Chris Laws wrote:
>My understanding is that this should create a valid TCP connection to each different server
>IP:port address, all originating from the same client IP:Port. Maybe there is a fundamental flaw
>in my understanding of TCP but I think I can have multiple remote addresses connected to the
>same local IP:port address.
>
>
This is a generic BSD socket API question that has nothing to do with
Twisted or Python.
Connections are identified by (srcIP, srcPort, dstIP, dstPort), yes. The
protocol
allows what you are asking. But of course even if the protocol allows
something,
not all implementations are not required to allow you to do it. In this
case, the
behaviour is selectable, with the default being do not allow it.
>Anyway this seems to be where my problem exists because when I define the same 'bindaddress'
>IP:Port tuple to each connectTCP call, I only seem to be able to connect to one remote server
>from the client application.
>
>
Try "man 2 socket",
SO_REUSEADDR
Indicates that the rules used in validating addresses supplied in a bind(2) call should allow reuse of local
addresses. For PF_INET sockets this means that a socket may bind, except when there is an active listening
socket bound to the address. When the listening socket is bound to INADDR_ANY with a specific port then it
is not possible to bind to this port for any local address.
More information about the Twisted-Python
mailing list