InetGet Problem oder Verbindungsfehler?

  • Hallo, liebe leute.
    Bin neu hier und versuche einen Updater für mehrere Dateien zu machen. So weit so gut... der ist schon (fast) fertig.
    Leider hab ich Problem beim Download... Normalerweise müsste es immer gehen, bei mir schläft er eichfach ein,
    und immer auf verschiedenen Stellen.
    Deswegen hab ich versucht einfache funktion zu machen, die den Download abbricht und nach eine Sekunde wieder anfängt,
    aber irgendwie funktioniert es trotzdem nicht.

    [autoit]


    $hDownload = InetGet($url&$datei, $ScriptDir&"\"&$datei_loc, 1, 1)
    GUICtrlSetData($stat,"Download von: "& $inet_file_name &" hat gestartet. " & @CRLF & GUICtrlRead($stat))
    $iTimer = TimerInit()
    Global $test_verbind = 0
    Do
    Sleep(250)
    GUICtrlSetData($pProgress,(InetGetInfo($hDownload, 0)/$size_inet)*100)
    GUICtrlSetData($pLabel_Fortschritt,Round((InetGetInfo($hDownload, 0)/$size_inet)*100,1) & " %")
    GUICtrlSetData($pLabel_Geschw,Round(InetGetInfo($hDownload, 0)/(TimerDiff($iTimer)),2) & " KB/s")
    ;ab hier "Hilfsfunktion", die den Download nochmal starten soll, wenn es nichts tut..
    $test_verbind = $test_verbind + 1
    If $test_verbind = 8 Then
    If InetGetInfo($hDownload,0) = 0 Then
    inetclose($hDownload)
    GUICtrlSetData($stat,"Fehler bei Verbindung, nachste versuch... " & @CRLF & GUICtrlRead($stat))
    Sleep(1000)
    $hDownload = InetGet($url&$datei, $ScriptDir&"\"&$datei_loc, 16, 1)
    $test_verbind = 0
    EndIf
    EndIf
    ;"Hilfsfunktion" - ende
    Until InetGetInfo($hDownload, 2)
    GUICtrlSetData($pLabel_Fortschritt,"100 %")
    InetClose($hDownload)
    EndIf
    sleep (500)
    $lines = $lines-1

    [/autoit]

    Name der Dateien werden aus einem txt-Datei abgelesen, der Pfad wird bearbeit und zum Downloader geschickt...
    Was mich stört ist, dass GUICtrlSetData($stat,"Fehler bei Verbindung, nachste versuch... " & @CRLF & GUICtrlRead($stat))
    zu oft vorkommt und lange Zeit überhaupt kein Download stadtfindet. :(
    Waran könnte es liegen?? Und was kann ich dagegen tun?

    3 Mal editiert, zuletzt von Taptiga (13. Juli 2010 um 14:35)

  • Hallo Taptiga,

    anscheinend ist deine INet-Verbindung sehr schlecht. Erhöhe die Anzahl von $test_verbind, dann sollte es klappen:

    Spoiler anzeigen
    [autoit]

    $size_inet = InetGetSize("http://www.autoit.de/index.php?page=Attachment&attachmentID=10230&h=aa527f1f9fc889dabed4de9ca0bebf755a66dd05")

    [/autoit] [autoit][/autoit] [autoit]

    ;$hDownload = InetGet($url&$datei, $ScriptDir&"\"&$datei_loc, 1, 1)
    $hDownload = InetGet("http://www.autoit.de/index.php?page=Attachment&attachmentID=10230&h=aa527f1f9fc889dabed4de9ca0bebf755a66dd05", @DesktopDir & "\JaYT-DwiMP3-P.exe", 1, 1)
    ;GUICtrlSetData($stat,"Download von: "& $inet_file_name &" hat gestartet. " & @CRLF & GUICtrlRead($stat))
    ToolTip("Download von hat gestartet")
    $iTimer = TimerInit()
    Global $test_verbind = 0
    Do
    Sleep(250)
    ;GUICtrlSetData($pProgress,(InetGetInfo($hDownload, 0)/$size_inet)*100)
    ;GUICtrlSetData($pLabel_Fortschritt,Round((InetGetInfo($hDownload, 0)/$size_inet)*100,1) & " %")
    ;GUICtrlSetData($pLabel_Geschw,Round(InetGetInfo($hDownload, 0)/(TimerDiff($iTimer)),2) & " KB/s")
    ;ab hier "Hilfsfunktion", die den Download nochmal starten soll, wenn es nichts tut..
    ToolTip(InetGetInfo($hDownload, 0) / $size_inet * 100)
    $test_verbind = $test_verbind + 1
    If $test_verbind = 40 Then
    If InetGetInfo($hDownload, 0) = 0 Then
    InetClose($hDownload)
    ;GUICtrlSetData($stat,"Fehler bei Verbindung, nachste versuch... " & @CRLF & GUICtrlRead($stat))
    ToolTip("Fehler bei Verbindung, nachste versuch... ")
    Sleep(1000)
    $hDownload = InetGet("http://www.autoit.de/index.php?page=Attachment&attachmentID=10230&h=aa527f1f9fc889dabed4de9ca0bebf755a66dd05", @DesktopDir & "\JaYT-DwiMP3-P.exe", 1, 1)
    $test_verbind = 0
    EndIf
    EndIf
    ;"Hilfsfunktion" - ende
    Until InetGetInfo($hDownload, 2)
    ;GUICtrlSetData($pLabel_Fortschritt, "100 %")
    ToolTip("100%")
    Sleep(5000)
    ToolTip("")
    InetClose($hDownload)

    [/autoit]

    ich habe dein Skript etwas abgeändert, da du die Gui nicht mitgepostet hast, obiges Skript läuft einwandfrei

    mfg (Auto)Bert

  • Hallo AutoBert.
    Danke erstmal für deine Antwort.
    Hab das gemacht und auch eine Pause über 4 sekunden nach dem inetclose() gemacht.
    Beim Testen sehe ich keine Sichtbare veränderungen, obwohl ich gefühl habe, das die "Hilfsfunktion" hilft bischen schneller
    aus diese "blind"-Zone rauszukommen.
    Ich habe 16000er DSL und hab schon mehrere male großen Dateien gedownloadet, was über 10 Stunden dauerte.
    Also gehe ich davon aus, dass meine Verbindung ziemlich stabil seien sollte.
    Sag mir wenn ich mich irre!!
    Die Textdatei liegt auf meinem Rechner im Apache-Verzeichnis und die Verbindung wird per DynDNS aufgebaut.
    Meine "Hilfsfunktion" hab ich eingebaut mehr um zu sehen was mit der Verbindung passier. Davor gab es überhaupt keine
    $test_verbind Variable und der Download, wenn er gestopt hat, blieb einfach hängen. So ein Zustand kann ruhig über stunden dauern, sogar wenn Datei paar KB groß ist. Dabei kann ich ruhig per Skype telefonieren und Dateien herunterladen.
    Kommische weise schaft er die Dateigröße abzulesen, beim Download aber kann einfach so stehen bleiben.
    Welchen Tests könnte ich machen, um zu verstehen woran es eingentlich liegt???

    Bei welchen kostenlosen hoster (möglichst mit guter Verbindung) kann man um 300 MB verschiedenen Daten abspreichern, um den Updater wegen dem Verbindungsfehler zu überprüfen, hat einer Ahnung????????

    5 Mal editiert, zuletzt von Taptiga (14. Juli 2010 um 11:50)