just RPC
Gibt's für Python noch andere RPC-Ansätze als XML-RPC? Ich suche sowas wie SimpleXMLRPCServer, was sich aber auch für Dateiübertragungen eignet... bei SimpleXMLRPCServer müsste man Binärdaten immer Base64-codieren; außerdem macht XML etwas Overhead...
- veers
- User
- Beiträge: 1219
- Registriert: Mittwoch 28. Februar 2007, 20:01
- Wohnort: Zürich (CH)
- Kontaktdaten:
Wenn du mit XML-RPC Daten übertragen willst bietet es sich an diese per HTTP zu übertragen. RPC bietet sich, soweit ich das beurteilen kann, nicht zum Übertragen von Daten an. Dazu brauchst du Streams und nicht Calls.
- Jonas
- Jonas
[url=http://29a.ch/]My Website - 29a.ch[/url]
"If privacy is outlawed, only outlaws will have privacy." - Phil Zimmermann
"If privacy is outlawed, only outlaws will have privacy." - Phil Zimmermann
- veers
- User
- Beiträge: 1219
- Registriert: Mittwoch 28. Februar 2007, 20:01
- Wohnort: Zürich (CH)
- Kontaktdaten:
Löst das Problem mit den Files/Streams aber auch nicht.Y0Gi hat geschrieben:JSON-RPC gibt es. Implementierungen sind mir so nicht bekannt, kann man möglicherweise aber selbst zusammenkombinieren.
[url=http://29a.ch/]My Website - 29a.ch[/url]
"If privacy is outlawed, only outlaws will have privacy." - Phil Zimmermann
"If privacy is outlawed, only outlaws will have privacy." - Phil Zimmermann
- gerold
- Python-Forum Veteran
- Beiträge: 5555
- Registriert: Samstag 28. Februar 2004, 22:04
- Wohnort: Oberhofen im Inntal (Tirol)
- Kontaktdaten:
Hallo droptix!droptix hat geschrieben:Dateiübertragungen
Ich halte veers Vorschlag, HTTP für den Datentransfer zu verwenden, für sehr gut.
Hier ein Beispiel mit CherryPy:
Code: Alles auswählen
#!/usr/bin/env python
# -*- coding: iso-8859-15 -*-
import cherrypy
from cherrypy.lib.static import serve_file
class Root(object):
def get_image(self, imagename, username, password):
if username == "aaa" and password == "bbb":
return serve_file(r"H:\GEROLD\Bilder und Videos\%s" % imagename)
else:
return "nix da..."
get_image.exposed = True
cherrypy.quickstart(Root())
Code: Alles auswählen
http://localhost:8080/get_image?imagename=kaetzchen.jpg&username=aaa&password=bbb
So könnte dann der Server aussehen:
Code: Alles auswählen
#!/usr/bin/env python
# -*- coding: iso-8859-15 -*-
import cherrypy
from cherrypy.lib.static import serve_file
from cherrypy._cptools import XMLRPCController
class Root(object):
def get_image(self, imagename, username, password):
if username == "aaa" and password == "bbb":
return serve_file(r"H:\GEROLD\Bilder und Videos\%s" % imagename)
else:
return "nix da..."
get_image.exposed = True
class XmlRpc(XMLRPCController):
def xmlrpctest(self, text):
return {"text": text}
xmlrpctest.exposed = True
def main():
# Tree zusammensetzen
root = Root()
root.xmlrpc = XmlRpc()
# Starten
cherrypy.quickstart(root)
if __name__ == "__main__":
main()
Code: Alles auswählen
#!/usr/bin/env python
# -*- coding: iso-8859-15 -*-
import socket
socket.setdefaulttimeout(3) # Timeout auf 3 sec. setzen
import xmlrpclib
server = xmlrpclib.ServerProxy("http://localhost:8080/xmlrpc/")
print server.xmlrpctest("Servus")
Code: Alles auswählen
#!/usr/bin/env python
# -*- coding: iso-8859-15 -*-
import urllib2
import urllib
URL = "http://localhost:8080/get_image"
data = {
"imagename": "kaetzchen.jpg",
"username": "aaa",
"password": "bbb"
}
data = urllib.urlencode(data)
dest = file("kaetzchen.jpg", "wb")
dest.write(urllib2.urlopen(URL, data).read())
dest.close()
Gerold
http://halvar.at | Kleiner Bascom AVR Kurs
Wissen hat eine wunderbare Eigenschaft: Es verdoppelt sich, wenn man es teilt.
Wissen hat eine wunderbare Eigenschaft: Es verdoppelt sich, wenn man es teilt.
Hab' ich ja gar nicht bestrittenveers hat geschrieben:Löst das Problem mit den Files/Streams aber auch nicht.Y0Gi hat geschrieben:JSON-RPC gibt es. Implementierungen sind mir so nicht bekannt, kann man möglicherweise aber selbst zusammenkombinieren.
-
- Python-Forum Veteran
- Beiträge: 16025
- Registriert: Freitag 20. Juni 2003, 16:30
- Kontaktdaten:
Ja, eine Mengedroptix hat geschrieben:Gibt's für Python noch andere RPC-Ansätze als XML-RPC?
My god, it's full of CARs! | Leonidasvoice vs (former) Modvoice
- nkoehring
- User
- Beiträge: 543
- Registriert: Mittwoch 7. Februar 2007, 17:37
- Wohnort: naehe Halle/Saale
- Kontaktdaten:
auch wenn der Thread zwei Monate her ist:
@Leonidas:
du solltest den Spyro-Link mal updaten. Google spuckte mir dazu http://lsc.fie.umich.mx/~sadit/spyro/spyro.html aus.
@Leonidas:
du solltest den Spyro-Link mal updaten. Google spuckte mir dazu http://lsc.fie.umich.mx/~sadit/spyro/spyro.html aus.
[url=http://www.python-forum.de/post-86552.html]~ Wahnsinn ist auch nur eine andere Form der Intelligenz ~[/url]
hackerkey://v4sw6CYUShw5pr7Uck3ma3/4u7LNw2/3TXGm5l6+GSOarch/i2e6+t2b9GOen7g5RAPa2XsMr2
hackerkey://v4sw6CYUShw5pr7Uck3ma3/4u7LNw2/3TXGm5l6+GSOarch/i2e6+t2b9GOen7g5RAPa2XsMr2
-
- Python-Forum Veteran
- Beiträge: 16025
- Registriert: Freitag 20. Juni 2003, 16:30
- Kontaktdaten:
Oh, tatsächlich. Habe ich korrigiert, danke.nkoehring hat geschrieben:du solltest den Spyro-Link mal updaten. Google spuckte mir dazu http://lsc.fie.umich.mx/~sadit/spyro/spyro.html aus.
My god, it's full of CARs! | Leonidasvoice vs (former) Modvoice