closing a "forever" Server Socket

Gabriel Genellina gagsl-py at yahoo.com.ar
Mon Jan 22 14:35:49 EST 2007


At Monday 22/1/2007 14:49, alessandro wrote:

>Oh my God! it's really so complicated?
>
>3 modules (threading, SocketServer, select) only for design a way to
>shutdown a TCP server????
>...but they told me that python was easy... :)

You already have the answer: replace serve_forever with your own loop.

>I'm working on a simulator and I have a monitor server that collects
>information. I can shutdown it using Ctrl-C from the keyboard but for
>my purpose could be very nice if I introduce a timer. So I could launch
>my monitor like this:
>./monitor 100
>
>and my monitor will run for 100 seconds. For this I'm using the Timer

This is simple enough, I presume:

   try:
     stopt = time.time()+100
     while time.time()<stopt:
         server.handle_request()
   except KeyboardInterrupt: pass
   # shutdown

The drawback is that it won't leave the loop until a request arrives, 
but this may not be a problem for you. (Other suggestions are more 
complicated because of this issue.)


-- 
Gabriel Genellina
Softlab SRL 


	

	
		
__________________________________________________ 
Preguntá. Respondé. Descubrí. 
Todo lo que querías saber, y lo que ni imaginabas, 
está en Yahoo! Respuestas (Beta). 
¡Probalo ya! 
http://www.yahoo.com.ar/respuestas 




More information about the Python-list mailing list