*.exe Datei Downloaden

Übersicht BlitzBasic Beginners-Corner

Neue Antwort erstellen

Kleiner satan

Betreff: *.exe Datei Downloaden

BeitragMi, März 21, 2007 19:29
Antworten mit Zitat
Benutzer-Profile anzeigen
Hallo,
ich möchte über ein B+ Programm eine Exe Datei von einem Server runterladen.

Code: [AUSKLAPPEN]

tcp = OpenTCPStream("**************",80)
file = WriteFile("./cache/test.exe")
If tcp <> 0 Then
  WriteLine tcp,"GET /Update-Test/test.exe HTTP/1.1"
  WriteLine tcp,"Host: ***************"
  WriteLine tcp,""
  stat = 1
  Repeat
    If ReadAvail(tcp) <> 0 Then
      msg$ = ReadLine(tcp)
      If stat = 2 Then WriteLine file,msg$
      If Trim(msg$) = "" Then stat = 2
      Print "lol"
    EndIf
  Until Eof(tcp)
EndIf


Das Runtergeladene Programm geht dann aber nichtmehr:(
Also, es öffnet sich ein Fenster was direkt wieder zu geht.

Kann mir jemand helfen?


gruß
Bastian

StepTiger

BeitragMi, März 21, 2007 19:36
Antworten mit Zitat
Benutzer-Profile anzeigen
Versuch es mal mit Bytes, nicht mit Line. Line wartet auf die Zeichenfolge 13,10. Sollte diese nicht existieren, ist die Datei nicht vollständig.
Noch gestern standen wir am Abgrund, doch heute sind wir schon einen Schritt weiter.
Computer:
AMD Sempron 3000+; ATI Radeon 9800 Pro; 512 MB DDR RAM 400Mhz; Asus E7N8X-E Deluxe; Samsung 200GB HD 5.4ns acces t
Gewinner: BP Code Compo #2
Π=3.141592653589793238...<--- und das aus dem kopf Laughing
Seit der Earthlings-Diskussion überzeugter Fleisch(fr)esser.

Kleiner satan

BeitragMi, März 21, 2007 20:02
Antworten mit Zitat
Benutzer-Profile anzeigen
Vielen Dank erstmal für die Hilfe.

Der Code sieht jetzt so aus.
Code: [AUSKLAPPEN]
tcp = OpenTCPStream("**********",80)
file = WriteFile("./cache/test.exe")
If tcp <> 0 Then
  WriteLine tcp,"GET /Update-Test/test.exe HTTP/1.1"
  WriteLine tcp,"Host: ********"
  WriteLine tcp,""
  stat = 1
  Repeat
    a = ReadAvail(tcp)
    If a <> 0 Then
      msg = ReadByte(tcp)
      If stat = 2 Then WriteByte file,msg
      If Trim(msg) = "" Then stat = 2
      Print a
      Delay 10
    EndIf
  Until Eof(tcp)
EndIf
 


Das Problem ist Folgendes:
Mit Readavail wird nach kurzer Zeit immer 8192 Byte angezeigt.
Und das Ganze dauert entlos (Wenn es überhaupt was macht).

gruß
Bastian

StepTiger

BeitragMi, März 21, 2007 20:27
Antworten mit Zitat
Benutzer-Profile anzeigen
frag doch einfach ab, und wenn nichts kommt, mach ein timeout rein.

Vielleicht hilft dir das hier:
http://www.blitzprog.com/forum/viewtopic.php?t=36
Noch gestern standen wir am Abgrund, doch heute sind wir schon einen Schritt weiter.
Computer:
AMD Sempron 3000+; ATI Radeon 9800 Pro; 512 MB DDR RAM 400Mhz; Asus E7N8X-E Deluxe; Samsung 200GB HD 5.4ns acces t
Gewinner: BP Code Compo #2
Π=3.141592653589793238...<--- und das aus dem kopf Laughing
Seit der Earthlings-Diskussion überzeugter Fleisch(fr)esser.

Smily

BeitragMi, März 21, 2007 21:11
Antworten mit Zitat
Benutzer-Profile anzeigen
du musst erst Zeilen auslesen, bis du eine Leerzeile bekommst (Header überspringen)
Dann Byteweise auslesen:

Code: [AUSKLAPPEN]
function download(url$,host$,name$)
 fileout = WriteFile(name$)
 tcp = OpenTCPStream(host$,80)
 WriteLine tcp, "GET "+url$+" HTTP/1.0"
; WriteLine tcp, "Host: " + host$
; WriteLine tcp, "User-Agent: Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.0)"
 WriteLine tcp, Chr$(10)
 Repeat
 Until ReadLine(tcp) = ""
 Repeat
  WriteByte fileout, Readbyte(tcp)
 Until Eof(tcp)
 closetcpstream tcp
 CloseFile fileout
End function
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

Neue Antwort erstellen


Übersicht BlitzBasic Beginners-Corner

Gehe zu:

Powered by phpBB © 2001 - 2006, phpBB Group