En Fri, 05 Feb 2010 20:03:51 -0300, News123 <news...@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

--
http://mail.python.org/mailman/listinfo/python-list

Reply via email to