At Thursday 23/11/2006 06:52, Rudy Schockaert wrote:
After some Googling I found a post of someone who wanted to do exactly
as what I want to do now.
There is however a problem in his code that makes the service fails
after the first connection. I slightly modified his code and now I can
run the service longer before I run into trouble.
I then tried making the SimpleXMLRPCServer multi-threaded, hoping the
problem would disappear, but no avail.
The code is as follows:
The commented part in the while loop is from the original code.
The original (commented-out) code should be fine. You have to wait
for 2 events: the service stop signal, or an incoming connection.
Anyway, you always have to catch exceptions; override handle_error at least.
Another approach (not involving events) would be to set a (not so
big) timeout on the socket, and test for self.stop_requested on each iteration.
server = ThreadedSimpleXMLRPCServer(("", 8080))
object = OBJECT()
server.register_instance(object)
self.socket = server.socket
while 1:
#win32file.WSAEventSelect(server,
self.hSockEvent,win32file.FD_ACCEPT)
#rc =
win32event.WaitForMultipleObjects((self.hWaitStop,self.hSockEvent), 0,
win32event.INFINITE)
#if rc == win32event.WAIT_OBJECT_0:
# break
#else:
# server.handle_request()
# win32file.WSAEventSelect(server,self.hSockEvent, 0)
# #server.serve_forever() ## Works, but breaks the
--
Gabriel Genellina
Softlab SRL
__________________________________________________
Correo Yahoo!
Espacio para todos tus mensajes, antivirus y antispam ¡gratis!
¡Abrí tu cuenta ya! - http://correo.yahoo.com.ar
--
http://mail.python.org/mailman/listinfo/python-list