Seite 1 von 1

Text nicht abrufbar mit Sockets

Verfasst: Sonntag 27. August 2017, 12:53
von Torben545
Hallo allerseits,

meein erster Post hier :) Ich arbeite mich momentan in python rein, mit Python for Informatics. Im Kapitel "Networked Programs" komme ich bei einem Fehler nicht weiter, obwohl ich den Code 1:1 abgetippt habe. Es geht darum, Romeo und Julia printen zu lassen. Es funktioniert mit der zweiten Version im Buch:

Code: Alles auswählen

import urllib
fhand = urllib.urlopen('http://www.py4inf.com/code/romeo-full.txt')
for line in fhand:
	print line.rstrip()

Aber nicht mit der ersten:

Code: Alles auswählen

import socket

mysock = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
mysock.connect(('www.py4inf.com', 80))
mysock.send('GET http://www.py4inf.com/code/romeo-full.txt HTTP/1.0\n\n')

while True:
	data = mysock.recv(512)
	if ( len(data) < 1 ) :
		break
	print data
mysock.close()
Ich habe selbst nach stundenlanger Recherche keine Antowrt gefunden, im Terminal erscheint nur ein HTML für 404 not found, obwohl es der gleiche Link ist. Für Hilfe wäre ich dankbar :)

LG

Re: Text nicht abrufbar mit Sockets

Verfasst: Sonntag 27. August 2017, 13:14
von BlackJack
@Torben545: Im ersten Beispiel steht hinter dem GET die volle URL, inklusive Schema und Domain, da gehört aber nur der Pfad hin. Hat das Buch keine Webseite mit Errata?

Re: Text nicht abrufbar mit Sockets

Verfasst: Sonntag 27. August 2017, 13:26
von BlackJack
Apropos stundenlange Recherche: Zu technischen Themen findet man bei Wikipedia in der Regel Artikel und weitere Links zum Thema, insbesondere Spezifikationen. So auch für das Hypertext Transfer Protokoll (HTTP) und dort dann auch ein Beispiel wie eine Anfrage funktioniert.

Re: Text nicht abrufbar mit Sockets

Verfasst: Sonntag 27. August 2017, 14:17
von Torben545
Ok, vielen Dank! Les ich mir mal alles in Ruhe durch :) Ne, das Buch hat sowas nicht. AUf Wikipedia bin ich noch nicht gekommen :oops: :roll: hab nur auf Stackoverflow die Themen gewühlt und bin bei Google nur auf mir unverständliche Ergebnisse gekommen :K