AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Programmierung allgemein Netzwerke Delphi TIdHttpServer: Große Dateien und Downloadmanager...
Thema durchsuchen
Ansicht
Themen-Optionen

TIdHttpServer: Große Dateien und Downloadmanager...

Ein Thema von ---Bernhard--- · begonnen am 14. Sep 2007 · letzter Beitrag vom 15. Sep 2007
Antwort Antwort
Benutzerbild von ---Bernhard---
---Bernhard---

Registriert seit: 26. Dez 2003
Ort: Abensberg
111 Beiträge
 
Delphi 2006 Professional
 
#1

TIdHttpServer: Große Dateien und Downloadmanager...

  Alt 14. Sep 2007, 23:23
Hallo

Ich setze mich schon seit einiger Zeit mit einigen Problem des IdHttpServers (Indy 10) auseinander, komme aber trotz langer Recherche leider nicht auf die Lösung.

Was mich derzeit an der Komponente stört, ist, dass sie scheinbar keine zwei gleichzeitigen Verbindungen/Anfragen auf die selbe URL zulässt:

1.: Lade ich z.B. gerade ein großes Bild herunter, so funktioniert dies ohne Probleme. Wird jedoch zur gleichen Zeit die selebe URL nochmals aufgerufen, so kommt beim zweitem Aufruf solange die Sanduhr, bis der erste Download abgeschlossen ist.
Es liegt aber definitiv nicht daran, dass die Datei durch den ersten Download zum lesen gesperrt ist.
Lautet die erste Downloadadresse "http://localhost/foto.jpeg" und die zweite Adresse "http://localhost/foto.jpeg?xyz", so funktionieren die Downloads parallel!
Wodurch dieser Fehler ausgelöst wird ist mir schleierhaft

2.: Man kann leider keine Download-Manager verwenden, die eine Datei in mehreren Teilen runterladen. Dieser Fehler wird jedoch wohl mit dem ersten zusammenhängen, darum möchte ich gar nicht genauer darauf eingehen.

3.: Mein derzeit größtes Problem: Aus irgendeinem Grund lässt sich der Download nicht zwischenpuffern. Möchte ich z.B. eine Videodatei mit 700-900MB im Webplayer anzeigen lassen, so lädt dieser die Datei erst vollständig herunter. Doch bis es so weit kommt, ist der Browser meist eh schon abgestürzt, kommt mit dieser Großen Datei nicht klar...
Kleine Dateien stellen kein so großes Problem dar, da sie korrekt angezeigt werden. Jedoch auch erst wenn sie vollständig geladen sind. - Zwischenpuffern: Fehlanzeige!


Es wäre echt ganz, ganz toll, wenn mir jemand von euch weiterhelfen könnte.


Viele Grüße,

Bernhard
Angehängte Dateien
Dateityp: pas server_163.pas (1,2 KB, 10x aufgerufen)
Bernhard Doll
Das Leben ist ein sch*** Spiel... aber eine super Grafik!!
http://www.doll-online.net
  Mit Zitat antworten Zitat
Benutzerbild von arbu man
arbu man

Registriert seit: 3. Nov 2004
Ort: Krefeld
1.108 Beiträge
 
Delphi 7 Professional
 
#2

Re: TIdHttpServer: Große Dateien und Downloadmanager...

  Alt 15. Sep 2007, 09:44
Zur Punkt 3:

Das Problem ist mir bekannt, wenn auch in einen anderen Context. Du müsstest die Methode AResponseInfo.WriteContent aufrufen um die Ausgelesen Daten zu senden, jedoch weiss ich nicht ob man diese Methode mehrmals aufrufen kann. Z.Z. stellt sich dieses Problem mir noch nicht da ich erst Versuche eine große Datei herrunter zu laden und da auch nicht darauf warten will bis alles da ist, Thead

mfg, Björn
Björn
>> http://bsnx.net <<
Virtual DP Stammtisch v1.0"iw" am 19.09.2007 - ich war dabei!
  Mit Zitat antworten Zitat
Benutzerbild von ---Bernhard---
---Bernhard---

Registriert seit: 26. Dez 2003
Ort: Abensberg
111 Beiträge
 
Delphi 2006 Professional
 
#3

Re: TIdHttpServer: Große Dateien und Downloadmanager...

  Alt 15. Sep 2007, 12:00
Hallo Björn,

leider löst dein Vorschlag das Problem auch nicht
Meines Erachtens ist es so, dass generell am Ende von "IdHTTPServer1CommandGet" WriteContent aufgerufen wird, um die noch nicht übermittelten Daten zu übertragen.
Ist z.B. sinnvoll, wenn man eine längere Textausgabe geplant ist und der erste Teil schon mal angezeigt werden soll, während der restliche Text noch in der "Generierung" ist.

Das manuelle Aufteilen der zu Sendenden Datei und das anschließende Senden der einzelnen Teilche stellt m.E. auch keine Lösung dar, da "IdHTTPServer1CommandGet" erst dann ein zweites mal aufgerufen wird, sobald die erste Verbindung beendet, also alles übertragen wurde!

Es scheint so, als würde bei Aufruf der selben URL die zweite oder jede weitere Verbindung erstmal in eine Warteschleife kommen, die eine nach der anderen abgearbeitet wird.

Eigentlich sind die Indy-Server Komponenten ja so aufgebaut, dass sie mehrere parallele Anfragen unterstützen. Dies wird auch von meinem vorheriges Beispiel bestätigt, dass bei einem zusätzlichen Parameter, egal welcher Art, die parallele Verbindung problemlos klappt...

Kann einfach keine Lösung für diesen Bug finden
Bernhard Doll
Das Leben ist ein sch*** Spiel... aber eine super Grafik!!
http://www.doll-online.net
  Mit Zitat antworten Zitat
Antwort Antwort


Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 13:52 Uhr.
Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz