sockets: bind to external interface

Chris Angelico rosuav at gmail.com
Mon Apr 25 23:50:40 CEST 2011


On Tue, Apr 26, 2011 at 7:18 AM, Thomas Rachel
<nutznetz-0c1b6768-bfa9-48d5-a470-7603bd3aa915 at spamschutz.glglgl.de>
wrote:
> Am 25.04.2011 22:30, schrieb Chris Angelico:
>
>> If you don't care what port you use, you don't need to bind at all.
>> That may be why it's not mentioned - the classic TCP socket server
>> involves bind/listen/accept, and the classic TCP client has just
>> connect; bind/connect is a lot less common.
>
> That is right, but I cannot see where he mentions the "direction" of the
> socket. My fist thought was that he tries to have a server socket...
>
> (BTW: bind can be omitted on server sockets as well; listen() seems to
> includes a bind(('', 0)) if not called explicitly before. In this case, the
> port is assigned randomly. Can be useful in some cases, where the port
> number is not fixed...)

Yes; for FTP data sockets, it doesn't matter what the port is, as long
as you tell the other end. Same as you can bind/connect, you can
not-bind and listen/accept. This is why I'm glad the socket subsystem
allows unusual behaviours (I've used bind/connect in a few places).
Give the programmer the tools and let him do what he chooses!

Chris Angelico



More information about the Python-list mailing list