Mal wieder ein tcp-problem
Übersicht

![]() |
SmilyBetreff: Mal wieder ein tcp-problem |
![]() Antworten mit Zitat ![]() |
---|---|---|
Hallo,
Ich habe mal wieder ein Problem mit tcp. Und zwar geht es darrum, dass ich ein kleines Programm machen will, um mir Datei herunterzuladen (mal wieder so ein lange-weile-projekt ^^) Für das Beispiel nehmen wir einfach mal folgende: http://www.freewebtemplates.co.../zip/1.zip (Ist ein design. Aber die Datei dient jetzt einfach mal als Beispiel) Wenn man diese URL mit dem Browser aufruft, kann man sie ganz normal herunterladen. Jetzt habe ich einfach mal den Beispielcode für OpenTcpStream leicht umgeschrieben, um die Datei abzufragen. Code: [AUSKLAPPEN] Print "Verbinde..."
tcp=OpenTCPStream("www.freewebtemplates.com",80) If Not tcp Print "Fehlgeschlagen": WaitKey: End Print "Verbunden! Sende Anfrage..." WriteLine tcp,"GET http://www.freewebtemplates.com/downloads/templates/zip/1.zip HTTP/1.0" WriteLine tcp,Chr$(10) If Eof(tcp) Print "Fehlgeschlagen.": WaitKey: End Print "Anfrage gesendet! Warte auf Antwort..." While Not Eof(tcp) Print ReadLine$( tcp ) ;Print "Bytes verfügbar:" + ReadAvail(tcp) Wend If Eof(tcp)=1 Then Print "Erfolgreich!" Else Print "Fehler!" CloseTCPStream tcp WaitKey() End Aber hier bekomme ich ein 403-Forbidden vom Server. Das komische ist allerdings mit jedem geläufigen Browser geht es. Wie muss ich die Anfrage machen, damit ich vom server die Datei bekomme? thx4help, Smily0412 |
||
Lesestoff:
gegen Softwarepatente | Netzzensur | brain.exe | Unabhängigkeitserklärung des Internets "Wir müssen die Rechte der Andersdenkenden selbst dann beachten, wenn sie Idioten oder schädlich sind. Wir müssen aufpassen. Wachsamkeit ist der Preis der Freiheit --- Keine Zensur!" stummi.org |
![]() |
FOODy |
![]() Antworten mit Zitat ![]() |
---|---|---|
Hab jetzt kein B3D aber versuch das mal so:
Code: [AUSKLAPPEN] Print "Verbinde..."
tcp=OpenTCPStream("www.freewebtemplates.com",80) If Not tcp Print "Fehlgeschlagen": WaitKey: End Print "Verbunden! Sende Anfrage..." WriteLine tcp,"GET /downloads/templates/zip/1.zip HTTP/1.0"+chr(10) WriteLine tcp,"Host: www.freewebtemplates.com"+chr(10) WriteLine tcp,Chr$(10) If Eof(tcp) Print "Fehlgeschlagen.": WaitKey: End Print "Anfrage gesendet! Warte auf Antwort..." While Not Eof(tcp) Print ReadLine$( tcp ) ;Print "Bytes verfügbar:" + ReadAvail(tcp) Wend If Eof(tcp)=1 Then Print "Erfolgreich!" Else Print "Fehler!" CloseTCPStream tcp WaitKey() End Ich meine irgendwo gelesen zu haben das man den Host im HTTP-Header angeben muss. Gruß, FOODy EDIT: Ich machs ma unter Edit weil es meiner Meinung nach nichts konstruktives ist... Ich hab es mal in BlitzMax portiert (war kein großes ding). Den Header Bekomme ich: Zitat: HTTP/1.0 403 Forbidden
Server: squid/2.5.STABLE10 Mime-Version: 1.0 Date: Fri, 27 Oct 2006 14:49:39 GMT Content-Type: text/html Content-Length: 1109 Expires: Fri, 27 Oct 2006 14:49:39 GMT X-Squid-Error: ERR_ACCESS_DENIED 0 X-Cache: MISS from Prolexic.com Connection: close Hat das dickgedruckte eine bedeutung? Mit dem Browser geht es aber wirklich : / @B3D: Damit meinte ich BlitzBasic ^^" |
||
BlitzMax + MaxGUI, 64-bit Arch Linux: Intel Core² E8500 | 8 GB Ram | GeForce GTX 460 · 1024 MB |
- Zuletzt bearbeitet von FOODy am Fr, Okt 27, 2006 16:54, insgesamt einmal bearbeitet
![]() |
Smily |
![]() Antworten mit Zitat ![]() |
---|---|---|
Ne. Das ist auch nicht wirklich hilfreich.
Mir ist auch aufgefallen, dass dieses Problem nur bei freewebtemplates.de auftritt, was mir allerdings immer noch nicht sagt wo der Fehler liegt. Wenn ich die datei mit dem Browser abrufen kann muss es doch auch mit bb mfg, Smily0412 btw: Was hat das denn B3D zu tun haben? Zitat: Hab jetzt kein B3D aber versuch das mal so:
|
||
Lesestoff:
gegen Softwarepatente | Netzzensur | brain.exe | Unabhängigkeitserklärung des Internets "Wir müssen die Rechte der Andersdenkenden selbst dann beachten, wenn sie Idioten oder schädlich sind. Wir müssen aufpassen. Wachsamkeit ist der Preis der Freiheit --- Keine Zensur!" stummi.org |
Dreamora |
![]() Antworten mit Zitat ![]() |
|
---|---|---|
Falls die Page einen Block für Download Programme hät, wäre das die Erklärung warum es nicht geht.
Auch gibt es seiten, die externes Linking verbieten und intern beim Zugriffsversuch im Browser umleiten, was natürlich dein Programm auch nicht nehmen würde. |
||
Ihr findet die aktuellen Projekte unter Gayasoft und könnt mich unter @gayasoft auf Twitter erreichen. |
![]() |
Smily |
![]() Antworten mit Zitat ![]() |
---|---|---|
Aber woher "weis" der Server denn, ob ich die Seite mit einem Browser oder womit auch immer aufrufe.
Letztendlich schickt der Browser doch auch nur genau so wie Blitzbasic eine HTTP-Anfrage an den Server. |
||
Lesestoff:
gegen Softwarepatente | Netzzensur | brain.exe | Unabhängigkeitserklärung des Internets "Wir müssen die Rechte der Andersdenkenden selbst dann beachten, wenn sie Idioten oder schädlich sind. Wir müssen aufpassen. Wachsamkeit ist der Preis der Freiheit --- Keine Zensur!" stummi.org |
![]() |
Vertex |
![]() Antworten mit Zitat ![]() |
---|---|---|
User-Agent wird bei allen Browsern mit geschickt. Musst mal mit Etheral o. ä. einfach mal den Datenaustausch zw. deinem Browser und der Seite loggen.
mfg olli |
||
vertex.dreamfall.at | GitHub |
![]() |
Smily |
![]() Antworten mit Zitat ![]() |
---|---|---|
Vertex hat Folgendes geschrieben: User-Agent wird bei allen Browsern mit geschickt. Musst mal mit Etheral o. ä. einfach mal den Datenaustausch zw. deinem Browser und der Seite loggen.
mfg olli Ich glaube ich bin zu blöd das Teil zu bedienen. ![]() Kannst du mal bitte für mich loggen, was zwichen Server und Client hin- und her geschickt wird, und es dann hier schreiben? |
||
Lesestoff:
gegen Softwarepatente | Netzzensur | brain.exe | Unabhängigkeitserklärung des Internets "Wir müssen die Rechte der Andersdenkenden selbst dann beachten, wenn sie Idioten oder schädlich sind. Wir müssen aufpassen. Wachsamkeit ist der Preis der Freiheit --- Keine Zensur!" stummi.org |
![]() |
Vertex |
![]() Antworten mit Zitat ![]() |
---|---|---|
![]() Eigentlich super leicht: Capture -> Capture Filters... -> HTTP TCP port(80) Capture -> Start mfg olli |
||
vertex.dreamfall.at | GitHub |
![]() |
Mathias-Kwiatkowski |
![]() Antworten mit Zitat ![]() |
---|---|---|
hi sowas eventuell?
so rufst du die funktion auf Code: [AUSKLAPPEN] Download("http://url.de/file.txt, CurrentDir$()+"fiele.txt) und das ist die funktion Code: [AUSKLAPPEN] Function Download(Inputfile$,outputfile$, Port%=80) Local host$ Local host_tmp Local stream Local file ;------------------------------- Den Host aus InputFile$ rausfiltern host$=Right(inputfile$,Len(inputfile$)-7) ; http:// rausschneiden host_tmp=Instr(host$,"/")-1 ; Das erste Slash im String suchen und 1 abziehen host$=Left(host$,host_tmp) ; Den Text bis zu dem ersten Slash-1 k?rzen ;------------------------------ TCPStream zum Host ?ffnen stream = OpenTCPStream(host$,Port%) ;------------------------------- Datei Anfordern WriteLine stream, "GET "+Inputfile$+ " HTTP/1.1" WriteLine stream, "Host: "+host$ WriteLine stream, "" ;------------------------------- Datei auf der Festplatte erstellen file = WriteFile(outputfile$) ;------------------------------- Das Ende des HTTP Headers suchen For a=0 To 100 tmp$=ReadLine(stream) If Instr(Lower$(tmp), "content-type")>0 Then ReadLine(stream) : Exit Next ;------------------------------- Datei downloaden While Not Eof(stream) ettr=ReadByte(stream) WriteByte file,ettr Wend ;------------------------------- Alles wieder Schlie?en CloseFile file CloseTCPStream stream End Function das geht auch mit bmp rar zip oder oder oder[/code] |
||
Übersicht


Powered by phpBB © 2001 - 2006, phpBB Group