Ideen für einen Updater

Übersicht BlitzBasic Beginners-Corner

Neue Antwort erstellen

 

Simfire

Betreff: Ideen für einen Updater

BeitragDo, Jun 14, 2007 14:11
Antworten mit Zitat
Benutzer-Profile anzeigen
Wollte für mein Programm einen Updater programmieren, was auch geklappt hat aber das Problem is ich bekomme nur txt dateien "gedownloadet".
Denn ich lese auf meinem Onlineserver die datei aus und erstelle aufm Pc eine neue Datei und schreibe das was ich Ausgelsen habe da rein und speichere es ab. Aber Bilder bzw exen funktionieren nicht mit der Technik. Was für einen Updater scheiße ist. Sad

Hat einer Vorschläge wie es funktioniert bzw wie man es besser löse könnte. Question
 

Schnuff

BeitragDo, Jun 14, 2007 14:20
Antworten mit Zitat
Benutzer-Profile anzeigen
Code: [AUSKLAPPEN]
function update(server$,datei$)
  tcp=opentcpstream(server$,80)
  writeline tcp,"GET "+datei$+" HTTP/1.1"
  writeline tcp,chr(10)
  file=writefile("neue datei.exe")
  while not eof(tcp)
    rb=readbyte(tcp)
    writebyte file,rb
  wend
end function


eventuell musst du noch den header abschneiden, ich habe das prog nicht getestet, sollte aber den denkanstoss geben
Programmers dont die. They gosub without return...
 

Simfire

Betreff: hmm

BeitragDo, Jun 14, 2007 14:38
Antworten mit Zitat
Benutzer-Profile anzeigen
thx schonmal
naja ich bin noch en ziemlicher noob habre mal getstet bekomme s aber net gebacken vlt könntest es mir en bissel genaue erläutern Wink

Blitzcoder

Newsposter

BeitragDo, Jun 14, 2007 14:46
Antworten mit Zitat
Benutzer-Profile anzeigen
Ich denke, dass du die Daten als Lines ausgelesen/abgespichert hast. So geht das nicht, da er dann immer bis zu einem "NeuZeilenZeichen" geht. Am besten ist es, die Datein Byteweise zu schreiben/lesen.
P4 3 Ghz@3,55Ghz|GF 6600GT 256MB|Samsung 80GB | 2x Samsung 160GB|2048MB DDR-400 RAM|6 Mbit Flatrate | Logitech G15 | Samsung 225BW-TFT | Ubuntu Gutsy Linux | Windows Vista | Desktop | Blog | CollIDE | Worklog
________________
|°°°°°°°°°°°°°°||'""|""\__,_
|______________ ||__ |__|__ |)
|(@) |(@)"""**|(@)(@)****|(@)

The_Nici

BeitragFr, Jun 15, 2007 22:52
Antworten mit Zitat
Benutzer-Profile anzeigen
Hab das Thema rausgekramt, also mein Prog:
Code: [AUSKLAPPEN]
host$=Input("Server/Hostname: ")
file$=Input("Datei eingeben: ")
download(host$,file$)
Print "Download gelungen - Taste drücken um das Programm zu beenden!"
WaitKey()
End
Function download(server$,datei$)
  tcp=OpenTCPStream(server$,21)
  WriteLine tcp,"GET "+datei$+" HTTP/1.1"
  WriteLine tcp,Chr(10)
  file=WriteFile(datei$)
  While Not Eof(tcp)
    rb=ReadByte(tcp)
    WriteByte file,rb
  Wend
End Function


Was der mir zurückliefert, ist anstatt die Datei ein tolles:
220 Welcome. FTP Server ready.
500 GET not understood
wobei ich denke, das der Befehl GET falsch ist^^
Dangö für die Antworten.

Smily

BeitragFr, Jun 15, 2007 22:57
Antworten mit Zitat
Benutzer-Profile anzeigen
jeder HTTP-Server müsste get eigentlich verstehen Confused
Was hast du als Datei angegeben?
Vlt liegts auch darran, dass du keinen host mitgeschickt hast. Halte ich aber eher für unwahrscheinlich.

meine kleine Downloadroutine:

Code: [AUSKLAPPEN]
if downloadfile("/header/header.png", "www.blitzforum.de", "C:\header.png") print "erfolg" Else print "fehler"
delay 5000
   
Function downloadfile(url$, host$, ziel$)
   tcp = OpenTCPStream(host$,80)
   If Not tcp Return 0
   WriteLine tcp, "GET " + url$ + " HTTP/1.0"
   WriteLine tcp, "host: " + host
   WriteLine tcp, ""
   Repeat
      z$ = ReadLine(tcp)
      If Left(z$,16) = "Content-Length: " size = Mid$(z$,17)
   Until ReadLine(tcp) = "" Or Eof(tcp)
   If Eof(tcp) Return 0
   Fileout = WriteFile(ziel$)
   If Not size
      Repeat
         WriteByte fileout, ReadByte(tcp)
      Until Eof(tcp)
   Else
      bank = CreateBank(size)
      ReadBytes bank, tcp, 0, size
      WriteBytes bank, fileout, 0, size
      FreeBank bank
   End if
   CloseFile fileout
   CloseTCPStream tcp
   Return 1
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

The_Nici

BeitragFr, Jun 15, 2007 23:04
Antworten mit Zitat
Benutzer-Profile anzeigen
Host: rrr2007.rr.funpic.de
Datei: Downloadtest.txt
Liegt im "/" Verzeichnis...

Zu deiner Downloadroutine wären comments schön, hab nur die hälfte verstanden, und bis jetzt noch keinen Fehler zu meinem gefunden...hmm...liegt es am FTP-Port?

EDIT: Huahua...mitm Port 80 (http) sendet er mir das:
Code: [AUSKLAPPEN]

HTTP/1.1 400 Bad Request
Date: Fri, 15 Jun 2007 21:04:57 GMT
Server: Apache
Content-Length: 226
Connection: close
Content-Type: text/html; charset=iso-8859-1

<!DOCTYPE HTML PUBLIC "-//IETF//DTD HTML 2.0//EN">
<html><head>
<title>400 Bad Request</title>
</head><body>
<h1>Bad Request</h1>
<p>Your browser sent a request that this server could not understand.<br />
</p>
</body></html>

Lunatix

BeitragFr, Jun 15, 2007 23:08
Antworten mit Zitat
Benutzer-Profile anzeigen
D uwillst über FTP einen HTML download starten?
[size=9]Pro|gram|mier|er: Ein Organismus, der Koffein in Software umwandelt.
Geben Sie eine beliebige 11-stellige Primzahl ein, um fortzusetzen...

The_Nici

BeitragFr, Jun 15, 2007 23:09
Antworten mit Zitat
Benutzer-Profile anzeigen
Übern HTTP gehts auch nicht...

Silver_Knee

BeitragFr, Jun 15, 2007 23:09
Antworten mit Zitat
Benutzer-Profile anzeigen
Code: [AUSKLAPPEN]
host$=Input("Server/Hostname: ")
file$=Input("Datei eingeben: ")
download(host$,file$)
Print "Download gelungen - Taste drücken um das Programm zu beenden!"
WaitKey()
End
Function download(server$,datei$)
  tcp=OpenTCPStream(server$,21)
  WriteLine tcp,"GET "+datei$+" HTTP/1.1"
  Writeline "Host: "+server;<---------------------Daran liegts villeicht
  WriteLine tcp,Chr(10)
  file=WriteFile(datei$)
  While Not Eof(tcp)
    rb=ReadByte(tcp)
    WriteByte file,rb
  Wend
End Function

Smily

BeitragFr, Jun 15, 2007 23:12
Antworten mit Zitat
Benutzer-Profile anzeigen
Joa du musst folgendes schicken:

Code: [AUSKLAPPEN]

GET (datei) HTTP/1.0
host: (host)
(leerzeile)


Die datei muss als Relativer pfad, z.B. in der Form
Code: [AUSKLAPPEN]
/header/header.png

angegeben werden. (ich glaube da liegt auch dein fehler)

hier eine abgespeckte und kommentierte version meiner Funktion, die wirklich nur die dinge enthält, welche für die HTTP-Übertragun relevant sind:

Code: [AUSKLAPPEN]

Function downloadfile(url$, host$, ziel$)
; tcp verbindung aufbauen
   tcp = OpenTCPStream(host$,80)
   If Not tcp Return 0 ;Function verlassen, wenn keine verbindung hergestellt werden kann
; GET-Anfrage schicken
   WriteLine tcp, "GET " + url$ + " HTTP/1.0"
   WriteLine tcp, "host: " + host
   WriteLine tcp, ""

; header überspringen
   Repeat
      z$ = ReadLine(tcp)
   Until ReadLine(tcp) = "" Or Eof(tcp)
   If Eof(tcp) Return 0 ;Funktion verlassen, wenn datei leer (meistens bei falschen anfragen bzw 404-fehlern)

; Datei auslesen
   Fileout = WriteFile(ziel$)
   Repeat
      WriteByte fileout, ReadByte(tcp)
   Until Eof(tcp)

; Streams freigeben
   CloseFile fileout
   CloseTCPStream tcp

; 1 zurückgeben (0 = fehlgeschlagen; 1 = erfolg)
   Return 1
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

The_Nici

BeitragFr, Jun 15, 2007 23:13
Antworten mit Zitat
Benutzer-Profile anzeigen
@FTC: Ne, kommt immernoch das gleiche. aber mitm Host mitschicken is ne gute Idee^^
Habs Mit HTTP und FTP ausprobiert...hmm

Smily

BeitragFr, Jun 15, 2007 23:15
Antworten mit Zitat
Benutzer-Profile anzeigen
Hast du meine Funktion jetzt verstanden?
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

The_Nici

BeitragFr, Jun 15, 2007 23:21
Antworten mit Zitat
Benutzer-Profile anzeigen
Sehr wohl, aber er gibt mir ;Funktion verlassen, wenn datei leer (meistens bei falschen anfragen bzw 404-fehlern) zurück^^ Vll. liegts an meinem Server?

Silver_Knee

BeitragFr, Jun 15, 2007 23:26
Antworten mit Zitat
Benutzer-Profile anzeigen
probiers mal mit was anderem zb www.FS-COM.com und /index.html aus wenn das dann funzt liegts an deinem server

The_Nici

BeitragFr, Jun 15, 2007 23:29
Antworten mit Zitat
Benutzer-Profile anzeigen
Liegt an meinem Server...zweifelslos...mal schauen, ob ichs richten kann^^

EDIT: ahja danke vielmals =)

Smily

BeitragFr, Jun 15, 2007 23:30
Antworten mit Zitat
Benutzer-Profile anzeigen
Ich muss gestehen, ich bin auch gerade ein wenig verdutzt.
der Server schickt irgendwie nur den Header zurück, aber nicht den Inhalt oO auf anhieb kann ich da jetzt auch nicht sagen, ob es am Server oder Code liegt. Ich glaub aber mal eher am Code. Den schau ich mir morgen nochmal genauer an, wenn ich ausgeschlafen bin *gähn*
Für heute geh ich erstmal ins bett ^^

gruß und gn8,
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

The_Nici

BeitragFr, Jun 15, 2007 23:38
Antworten mit Zitat
Benutzer-Profile anzeigen
Also die index.php konnte der mir unterschieben...hmm, vll. liegts am CHMOD. xD
cya und danke!

Neue Antwort erstellen


Übersicht BlitzBasic Beginners-Corner

Gehe zu:

Powered by phpBB © 2001 - 2006, phpBB Group