SimpleXMLRPCServer Client fragen
Verfasst: Donnerstag 6. März 2008, 20:11
Hallo
Also ich starte den Server auf meinem Notbook (XP), wenn ich dann auf meinem Notbook den Client starte ist alles in Ordnung. Wenn ich den Client auf einem anderen PC starte (XP und Vista getestet) bleibt IDLE "hängen". Wenn ich die Datei so starte kommt ein fehler den man nicht lesen kann, weil das Fenster ja gleich wieder zu geht.
Der Server:
Der Client:
Was mache ich falsch?
Gruß
Andyh
Also ich starte den Server auf meinem Notbook (XP), wenn ich dann auf meinem Notbook den Client starte ist alles in Ordnung. Wenn ich den Client auf einem anderen PC starte (XP und Vista getestet) bleibt IDLE "hängen". Wenn ich die Datei so starte kommt ein fehler den man nicht lesen kann, weil das Fenster ja gleich wieder zu geht.
Der Server:
Code: Alles auswählen
# -*- coding: utf-8 -*-
"""
******************************************************************************
* Simple Threading XMLRPC-Server
******************************************************************************
"""
from SocketServer import ThreadingTCPServer
from SimpleXMLRPCServer import SimpleXMLRPCRequestHandler
from SimpleXMLRPCServer import SimpleXMLRPCDispatcher
from random import randint
import time
import sys
class SimpleThreadingXMLRPCServer(ThreadingTCPServer, SimpleXMLRPCDispatcher):
def __init__(self, addr, requestHandler = SimpleXMLRPCRequestHandler, logRequests = 1):
self.logRequests = logRequests
if sys.version_info[:2] < (2, 5):
SimpleXMLRPCDispatcher.__init__(self)
else:
SimpleXMLRPCDispatcher.__init__(self, allow_none = False, encoding = None)
ThreadingTCPServer.__init__(self, addr, requestHandler)
class XmlrpcHandler:
def get_random_int(self, from_int, to_int):
time.sleep(2) # Zum Testen wird hier zwei Sec. gewartet.
return randint(from_int, to_int)
def test(self):
b = 30
a = b
return a
server = SimpleThreadingXMLRPCServer(("192.168.2.102", 50507))
server.register_instance(XmlrpcHandler())
print "Der XMLRPC-Server horcht auf http://localhost:50507."
print "Er kann mit STRG+C oder STRG+PAUSE beendet werden."
server.serve_forever()
Code: Alles auswählen
# -*- coding: utf-8 -*-
"""
******************************************************************************
* Einfacher XMLRPC-Client
******************************************************************************
"""
import xmlrpclib
import threading
import time
class client(threading.Thread):
def __init__(self):
threading.Thread.__init__(self)
def run(self):
server = xmlrpclib.ServerProxy("http://192.168.2.102:50507")
print server.get_random_int(1, 99)
print server.test()
bla = client()
bla.start()
Gruß
Andyh