Seite 1 von 1

SimpleXMLRPCServer Client fragen

Verfasst: Donnerstag 6. März 2008, 20:11
von Andyh
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:

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()
Der Client:

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()
Was mache ich falsch?

Gruß
Andyh

Re: SimpleXMLRPCServer Client stürzt ab

Verfasst: Donnerstag 6. März 2008, 20:21
von Leonidas
Andyh hat geschrieben:Was mache ich falsch?
IDLE benutzt und vor allem [wiki=FAQ#WieStarteIchSkripte]FAQ[/wiki] nicht gelesen.

Re: SimpleXMLRPCServer Client stürzt ab

Verfasst: Freitag 7. März 2008, 06:28
von Zap
Andyh hat geschrieben:Wenn ich die Datei so starte kommt ein fehler den man nicht lesen kann, weil das Fenster ja gleich wieder zu geht.
Gewöhn dir am besten an deine Skripte immer aus der Console heraus zu starten, dann sieht man auch alle Fehlermeldungen.

Verfasst: Freitag 7. März 2008, 21:16
von Andyh
Hallo

Danke!
Werde ich jetzt nurnoch so machen!

Gruß
Andyh

Verfasst: Samstag 8. März 2008, 17:18
von Andyh
Hallo

Ich habe schon wieder eine Frage:

Ich kann schon einen Sting an den Server schicken (ist ja nicht schwer). jetzt soll der Server den Sting wieder zurück an den Clienten schicken (könnten auch mehrere sein) und in einer listbox anzeigen.

Hat jemand ne Idee?

Gruß
Andyh