Seite 1 von 1
Server und Client selber Rechner?
Verfasst: Dienstag 21. September 2010, 15:08
von Friedericus
Servus Leuts,
ich hab mal nach diesem Tutorial
http://openbook.galileocomputing.de/pyt ... 20_001.htm
mir versucht per TCP (punkt 20.1.3) ein simples Chatprogramm zu erstellen.
Wenn ich das jetzt aber starte, dann geb ich die IP-Adresse (127.0.0.1/localhost) ein und es kommt die Fehlermeldung
socket.error: (10061, 'Connection refused')
zurück.
Liegt das dadran dass Server und Client die selbe IP haben?
Re: Server und Client selber Rechner?
Verfasst: Dienstag 21. September 2010, 17:53
von Dauerbaustelle
Umm, binde mal den Server nicht an "", sondern z.B. an "127.0.0.1".
Re: Server und Client selber Rechner?
Verfasst: Dienstag 21. September 2010, 19:00
von Hyperion
Und wie immer: Das Openbook von Galileo ist nicht zu empfehlen. Gründe hierfür finden sich mittels der SuFu hier im Forum

Re: Server und Client selber Rechner?
Verfasst: Mittwoch 22. September 2010, 08:31
von Friedericus
@Dauerbaustelle: hab ich gemacht, das Ergebnis ist dasselbe.
@ Hyperion: Was empfiehlst du mir denn für Bücher?
Re: Server und Client selber Rechner?
Verfasst: Mittwoch 22. September 2010, 08:40
von Rebecca
Bist du dir sicher, dass das Server-Programm auch noch laeuft wenn du den Client startest und auch tatsaechlich auf dem Port lauscht? Funkt eine Firewall dazwischen?
Ansonsten: Poste deinen Code.
Re: Server und Client selber Rechner?
Verfasst: Mittwoch 22. September 2010, 08:44
von Friedericus
dann machen wir das mal:
Also, hier erstmal der Server:
Code: Alles auswählen
import socket
s = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
s.bind(("127.0.0.1", 50000))
s.listen(1)
try:
while True:
komm, addr = s.accept()
while True:
data = komm.recv(1024)
if not data:
komm.close()
break
print "[%s] %s" % (addr[0], data)
nachricht = raw_input("Antwort: ")
komm.send(nachricht)
finally:
s.close()
und der Client:
Code: Alles auswählen
import socket
ip = raw_input("IP-Adresse: ")
s = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
s.connect((ip, 50000))
try:
while True:
nachricht = raw_input("Nachricht: ")
s.send(nachricht)
antwort = s.recv(1024)
print "[%s] %s" % (ip,antwort)
finally:
s.close()
Re: Server und Client selber Rechner?
Verfasst: Mittwoch 22. September 2010, 08:54
von Rebecca
Der Code funktioniert bei mir, und nein, es ist kein Problem wenn Server und Client auf dem gleichen Rechner laufen. Ich kann nur nochmal auf meine obigen zwei Fragen verweisen.
Re: Server und Client selber Rechner?
Verfasst: Mittwoch 22. September 2010, 09:23
von Friedericus
Also, Firewall iss inaktiv, daran liegts schonmal nicht.
und deine andere Frage versteh ich nicht so wirklich.
soll ich den Port verändern oder was meinst du?
Re: Server und Client selber Rechner?
Verfasst: Mittwoch 22. September 2010, 10:10
von Rebecca
Naja, jetzt wo ich gesehen habe dass der Code das tut was er soll, reduziert sich die Frage auf: Laeuft der Server noch, wenn du den Client startest? (Keine Fehlermeldung aufgetaucht oder anderswie beendet worden?)
Benutzt du Windows? Da kenne ich mich nicht mit aus, aber darf man als normaler User Server Sockets starten oder braucht man dafuer Admin-Rechte?
Re: Server und Client selber Rechner?
Verfasst: Mittwoch 22. September 2010, 10:19
von Friedericus
hmm, wenn der Server nicht laufen würde, dann würd doch nicht "connection refused" kommen oder?
Eher was im Stil von "Connection timeout" wenn er keine Antwort kriegt oder?
und ja, ich arbeit unter Windows. Das mit den Admin-Rechten werd ich gleich mal nachprüfen.
Re: Server und Client selber Rechner?
Verfasst: Mittwoch 22. September 2010, 10:29
von Rebecca
Nein, connection refused ist meistens ein nicht vorhandenen Server. Die TCP-Pakete kommen am Ziel an, aber da ist nichts. Timeouts gibt's auf der Ebene nicht, aber eine ein "haengender" Client deutet darauf hin, dass entweder eine Firewall die Pakete dropt oder das Netz nicht in Ordnung ist, sodass die Pakete dass Ziel gar nicht erst erreichen.
Re: Server und Client selber Rechner?
Verfasst: Mittwoch 22. September 2010, 10:59
von Friedericus
hmm, da ich ja Client und Server auf dem selben Rechner laufen hab, dürfte das ja mit einem evtl. nicht funktionierenden Netzwerk nicht zusammenhängen oder?
und Firewall iss inaktiv. Schon die ganze Zeit

Re: Server und Client selber Rechner?
Verfasst: Mittwoch 22. September 2010, 18:31
von DaMutz
mit Python 2.6 und Windows 7 funktioniert das bei mir wunderbar.
Starte einmal den Server und schau ob du mit 'netstat -a' (in der Konsole) den folgenden Eintrag hast:
Und wenn du den Server abbrichst diese Meldung nicht mehr vorhanden ist.
Wenn der Server bei mir nicht gestartet ist kommt den folgenden Traceback:
Code: Alles auswählen
IP-Adresse: 127.0.0.1
Traceback (most recent call last):
File "113321.py", line 5, in <module>
s.connect((ip, 50000))
File "<string>", line 1, in connect
socket.error: [Errno 10061] No connection could be made because the target machine actively refused it
Re: Server und Client selber Rechner?
Verfasst: Donnerstag 23. September 2010, 11:14
von Friedericus
hmm, mein Chef meinte das hänge irgendwie mit unsrem Firmennetzwerk zusammen und dass das sich da querstellt.
Gelöst haben wirs letztendlich durch Einrichten einer Loopbackverbindung.
Re: Server und Client selber Rechner?
Verfasst: Freitag 8. Oktober 2010, 10:27
von name
Dir ist schon klar, dass der Code nicht sonderlich sinnvoll ist, da er arbitär den Datenstrom in Stücke teilt, diesen dann ausgibt, und den User nach einer Antwort fragt, und ich nicht nachvollziehen kann, wozu das sinnvoll ist. Kleines Beispiel:
A sendet "Du bist ein Kofferproduzent", B liest nur "Du bist ein Koffer" (Beledigigung hier in AT) und wird daraufhin nach einer Antwort darauf gefragt, in welcher er seine Verärgerung darüber, was A denn denke, dass er so eine Nachricht sendet, zum Ausdruck bringt. Was lernen wir daraus? Kaputte Netzwerkprogramme zerstören zwischenmenschliche Beziehungen.