In article
<[EMAIL PROTECTED]>,
Gabriel Genellina <[EMAIL PROTECTED]> wrote:
> On 2 mar, 17:21, [EMAIL PROTECTED] wrote:
>
> > This worked:
> >
> > import socket
> > from time import time
> >
> > for i in range( 20 ):
> > HOST = ''
> > PORT = 80 #<----
> > s = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
> > s.bind((HOST, PORT))
> > print( 'listen' )
> > s.listen(1)
> > conn, addr = s.accept()
> > print( 'connected', addr )
> > print( conn.recv( 4096 ) ) #<----
> > conn.send( bytes('<html><body>test %f</body></
> > html>'%time(),'ascii') )
> > conn.close() #<----
> > s.close()
> >
> > ... and connect with a browser: http://localhost/if it's internet
> > exploder.
>
> Note that there is no need (nor is desirable) to close and rebind the
> listening socket for each connection.
I'd say, "nor is desirable", is an understatement. On most systems, an
attempt to re-bind to a given port number soon after it was unbound will
fail (unless you utter magic ioctl incantations). This will manifest
itself in the s.bind() call raising an exception on the *second* pass
through the loop.
--
http://mail.python.org/mailman/listinfo/python-list