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

Reply via email to