how to make a SimpleXMLRPCServer abort at CTRL-C under windows
Gabriel Genellina
gagsl-py2 at yahoo.com.ar
Fri Feb 5 19:56:21 EST 2010
En Fri, 05 Feb 2010 20:03:51 -0300, News123 <news123 at free.fr> escribió:
> I'm using an XMLRPC server under Windows.
>
> What I wonder is how I could create a server, that can be killed with
> CTRL-C
>
> The server aborts easily with CTRL-BREAK but not with CTRL-C (under
> Windows)
>
> If I press CTRL-C it will only abort when the next RPC call occurs.
> It seems it is blocking in the select() call in the handle_request()
> function.
Python 2.6 and up behaves exactly as you want.
On previous versions you may use this:
class MyXMLRPCServer(SimpleXMLRPCServer.SimpleXMLRPCServer):
... your methods ...
if not hasattr(SimpleXMLRPCServer.SimpleXMLRPCServer, 'shutdown'):
# pre 2.6
quit = False
def serve_forever(self):
while not self.quit:
self.handle_request()
def shutdown(self):
self.quit = True
def server_bind(self):
self.socket.settimeout(1.0)
SimpleXMLRPCServer.SimpleXMLRPCServer.server_bind(self)
--
Gabriel Genellina
More information about the Python-list
mailing list