SimpleXMLRPCServer Client fragen

Wenn du dir nicht sicher bist, in welchem der anderen Foren du die Frage stellen sollst, dann bist du hier im Forum für allgemeine Fragen sicher richtig.
Antworten
Andyh
User
Beiträge: 319
Registriert: Dienstag 8. Januar 2008, 19:52
Kontaktdaten:

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
Zuletzt geändert von Andyh am Samstag 8. März 2008, 17:14, insgesamt 1-mal geändert.
Meinen Dickschädel schon bemerkt?
Ich bin jetzt FACHARBEITER (Zerspanungsmechaniker)!!!
[code]import sys

if sys.platform == "win32":
print "this program only runs on operating systems!!!"
sys.TotalError()[/code]
Leonidas
Python-Forum Veteran
Beiträge: 16025
Registriert: Freitag 20. Juni 2003, 16:30
Kontaktdaten:

Andyh hat geschrieben:Was mache ich falsch?
IDLE benutzt und vor allem [wiki=FAQ#WieStarteIchSkripte]FAQ[/wiki] nicht gelesen.
My god, it's full of CARs! | Leonidasvoice vs (former) Modvoice
Zap
User
Beiträge: 533
Registriert: Freitag 13. Oktober 2006, 10:56

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.
Andyh
User
Beiträge: 319
Registriert: Dienstag 8. Januar 2008, 19:52
Kontaktdaten:

Hallo

Danke!
Werde ich jetzt nurnoch so machen!

Gruß
Andyh
Meinen Dickschädel schon bemerkt?
Ich bin jetzt FACHARBEITER (Zerspanungsmechaniker)!!!
[code]import sys

if sys.platform == "win32":
print "this program only runs on operating systems!!!"
sys.TotalError()[/code]
Andyh
User
Beiträge: 319
Registriert: Dienstag 8. Januar 2008, 19:52
Kontaktdaten:

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
Meinen Dickschädel schon bemerkt?
Ich bin jetzt FACHARBEITER (Zerspanungsmechaniker)!!!
[code]import sys

if sys.platform == "win32":
print "this program only runs on operating systems!!!"
sys.TotalError()[/code]
Antworten