Komisches Verhalten von XML-RPC

Sockets, TCP/IP, (XML-)RPC und ähnliche Themen gehören in dieses Forum
Benutzeravatar
Leonidas
Administrator
Beiträge: 16023
Registriert: Freitag 20. Juni 2003, 16:30
Kontaktdaten:

Komisches Verhalten von XML-RPC

Beitragvon Leonidas » Sonntag 17. Oktober 2004, 13:33

Hallo!
Ich habe folgende zwei Progs:
connectionserver.py

Code: Alles auswählen

#!/usr/bin/env python2.3
import os
from SimpleXMLRPCServer import SimpleXMLRPCServer

def getppp0():
        return 'NotImplemented'

server = SimpleXMLRPCServer(("localhost", 7373))
server.register_function(getppp0)
server.serve_forever()


und sparcclient.py:

Code: Alles auswählen

import xmlrpclib

server = xmlrpclib.Server("http://192.168.123.2:7373/")
print server.getppp0()


Wenn ich nun versuche vom *selben* Rechner darauf zu verbinden, gibt es ein "connection refused", wenn ich von einem anderen Rechner verbinde gibt es "bad xml rpc version" (o.ä.). Wenn ich nur aber im Server statt localhost 192.168.123.2 eingebe, läuft es wunderbar. Kann mir jemand erklären warum dies so ist?
My god, it's full of CARs! | Leonidasvoice vs Modvoice
rayo
User
Beiträge: 773
Registriert: Mittwoch 5. November 2003, 18:06
Wohnort: Schweiz
Kontaktdaten:

Beitragvon rayo » Sonntag 17. Oktober 2004, 15:08

Hi

Wenn du den Server auf "localhost" setzt kannst du nicht via lan darauf zugreifen (http://192.168.123.2:7373/).

Also beim Server auf '192.168.123.2' oder '' setzen, dann kannst du im 1.Fall mit 192.168.123.2 zugreifen jedoch nicht mit localhost, beim 2. Fall kannst du entweder mit localhost oder der lanip zugreifen.

Dann sollte das "Connection refused" problem weg sein.

Gruss
Benutzeravatar
Leonidas
Administrator
Beiträge: 16023
Registriert: Freitag 20. Juni 2003, 16:30
Kontaktdaten:

Beitragvon Leonidas » Sonntag 17. Oktober 2004, 15:16

Mhh, man lernt doch immer wieder neues. Danke!
My god, it's full of CARs! | Leonidasvoice vs Modvoice
Benutzeravatar
Dookie
Python-Forum Veteran
Beiträge: 2010
Registriert: Freitag 11. Oktober 2002, 18:00
Wohnort: Salzburg
Kontaktdaten:

Beitragvon Dookie » Sonntag 17. Oktober 2004, 17:54

Hi,

die IP von localhost ist 127.0.0.1


Gruß

Dookie

Code: Alles auswählen

#!/usr/bin/env python
import this
Benutzeravatar
Leonidas
Administrator
Beiträge: 16023
Registriert: Freitag 20. Juni 2003, 16:30
Kontaktdaten:

Beitragvon Leonidas » Sonntag 17. Oktober 2004, 18:09

Ja, das weis ich, aber ich kann von einem anderen Rechner ja schlecht auch 127.0.0.1 zugreifen, wenn dort kein Server läuft. 8)
Noch eine etwas andere Frage: wie beende ich so einen SimpleXMLRPCServer von remote? Ich habe dies gefunden http://aspn.activestate.com/ASPN/Cookbo ... ipe/114579, das geht zwar, lässt aber laut netstat den port im TCP_WAIT Zustand (bis das OS den port wieder freigibt), so dass man nicht sofort auf diesem Port einen neuen Server starten kann, und das ist ja wohl nicht 'clean'. Wie kann ich das richtig machen. Ich glaube, das sollte genauso gehen wie beim SocketServer...
My god, it's full of CARs! | Leonidasvoice vs Modvoice

Wer ist online?

Mitglieder in diesem Forum: 0 Mitglieder