Komisches Verhalten von XML-RPC

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

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:

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
Leonidas
Administrator
Beiträge: 16024
Registriert: Freitag 20. Juni 2003, 16:30
Kontaktdaten:

Sonntag 17. Oktober 2004, 15:16

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

Sonntag 17. Oktober 2004, 17:54

Hi,

die IP von localhost ist 127.0.0.1


Gruß

Dookie
[code]#!/usr/bin/env python
import this[/code]
Leonidas
Administrator
Beiträge: 16024
Registriert: Freitag 20. Juni 2003, 16:30
Kontaktdaten:

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
Antworten