Hi dankegut!dankegut hat geschrieben:Kann ich dem Client jetzt sagen, dass er das in eine Datei schreiben soll ?! am besten noch mit dem gleichen dateinamen
Natürlich geht das.

server.py:
Code: Alles auswählen
#!/usr/bin/env python -O
# -*- coding: utf-8 -*-
"""
******************************************************************************
* Simple XMLRPC-Server
******************************************************************************
"""
import xmlrpclib
from SimpleXMLRPCServer import SimpleXMLRPCServer
KEYFILE = "my_key.xml"
class XmlrpcHandler:
def get_keyfile(self):
"""
Gibt den Inhalt und den Dateinamen der Datei KEYFILE zurück.
"""
f = file(KEYFILE, "rb")
ret_dict = {
"filename": KEYFILE,
"content": xmlrpclib.Binary(f.read())
}
f.close()
return ret_dict
def main():
"""
Hauptprozedur
"""
server = SimpleXMLRPCServer(("localhost", 50505))
server.register_instance(XmlrpcHandler())
print "Der XMLRPC-Server horcht auf http://localhost:50505."
print "Er kann mit STRG+C oder STRG+PAUSE beendet werden."
server.serve_forever()
if __name__ == "__main__":
main()
Code: Alles auswählen
#!/usr/bin/env python -O
# -*- coding: utf-8 -*-
"""
******************************************************************************
* Einfacher XMLRPC-Client
******************************************************************************
"""
import xmlrpclib
def main():
"""
Hauptprozedur
"""
server = xmlrpclib.ServerProxy("http://localhost:50505")
ret_dict = server.get_keyfile()
print "Filename:", ret_dict["filename"]
print "Content:", ret_dict["content"].data
if __name__ == "__main__":
main()
Gerold

Stichworte: binär daten übertragen binary data