Autor |
Beitrag |
IhopeonlyReader
Beiträge: 600
Erhaltene Danke: 23
Delphi 7 PE
|
Verfasst: So 01.09.13 19:12
Guten Tag,
als ich folgenden Artikel las: www.pc-magazin.de/ra...nterladen-86273.html stellte ich mir im Hinterkopf ein paar Fragen.
Da ich gerne mehr darüber wissen möchte, ggf. mal ein ähnliches Programm (kleinerer Ausführung) programmieren möchte, stelle ich nun ein paar Zitate von dem oben genannten Link mit meinen Fragen/ Kommentaren, wäre nett wenn ihr euch dazu äußern könntet
Zitat: | Sowohl der Internet Explorer 7 als auch Firefox 2.0 enthalten technisch veraltete Download-Module. Und auch Opera, [...]
|
TCP-Verbindungen können veralten? bzw. was kann da nicht vollständig genutzt werden? kann man das mit einer einfachen Delphi Client-Server Verbindung vergleichen?
Zitat: | Vor allem bei größeren Dateien bringt das Aufteilen und parallele Herunterladen in kleineren Segmenten über mehrere Verbindungen Vorteile
|
Das hieße ja, es wird eine Quelle mehrfach angezapft und somit die Downloadgeschwindigkeit anderer Downloader gehämmt, da man sozusagen 3 von 100 Usern ist und die anderen nur 1 von 100.. Ebenfalls: wenn alle "Downloaduser" das nutzten würden, wäre es endgültig genau so schnell und der Server mit den vielen Clients eher überfordert oder?
Zitat: | Das klappt bei allen Sites, die mehrere Download-Anfragen von einer IP-Adresse zulassen
|
bestätigt meine Ansicht
Zitat: | Ohne Download-Manager müssten Sie in vielen Fällen wieder komplett von vorne beginnen
|
Wie kann man denn "bei jedem Download" den Download in der mitte beginnen?
Wenn ich z.B. ein "Download-Server" hätte, und ich keine eingebaute "download-ab" Funktion/flag (Paket ID) hätte, würde das meineswissen nicht gehen oder?
Falls ich diese einbauen müsste, woher kennt der "download" Manager die Paket ID und den Aufbau des Paketes?
Zitat: | Wie der Name schon verrät, kann DownThemAll alle auf einer Webseite verlinkten Dateien in einem Rutsch herunterladen
|
mhh.. wenn dann müsste das Programm ja alle Dateien auf dem Server kennen !
Gibt es eine Möglichkeit von einer Website alle "Teile" zu sehen (wie als wenn ich per FTP darauf zugreifen würde) oder werden nur die auf der Website aufgeführten links "gedownloaded" ?
_________________ Sucht "neueres" Delphi
Wer nicht brauch was er hat, brauch auch nicht was er nicht hat!
|
|
Martok
Beiträge: 3661
Erhaltene Danke: 604
Win 8.1, Win 10 x64
Pascal: Lazarus Snapshot, Delphi 7,2007; PHP, JS: WebStorm
|
Verfasst: So 01.09.13 19:25
Fast alles richtig.
IhopeonlyReader hat folgendes geschrieben : | Wie kann man denn "bei jedem Download" den Download in der mitte beginnen?
Wenn ich z.B. ein "Download-Server" hätte, und ich keine eingebaute "download-ab" Funktion/flag (Paket ID) hätte, würde das meineswissen nicht gehen oder? |
Das ist der HTTP-Header Range im Request und Content-Range in der Antwort. Wenn der Server das nicht kann/will(z.B. wenn die Daten Schrittweise generiert werden), gehts halt nicht.
IhopeonlyReader hat folgendes geschrieben : | Zitat: | Wie der Name schon verrät, kann DownThemAll alle auf einer Webseite verlinkten Dateien in einem Rutsch herunterladen
|
mhh.. wenn dann müsste das Programm ja alle Dateien auf dem Server kennen ! |
Verlinkt wie in "verlinkt" Wenn kein Link hinführt, weiß DTA auch nix davon.
_________________ "The phoenix's price isn't inevitable. It's not part of some deep balance built into the universe. It's just the parts of the game where you haven't figured out yet how to cheat."
|
|
jfheins
Beiträge: 918
Erhaltene Danke: 158
Win 10
VS 2013, VS2015
|
Verfasst: So 01.09.13 19:26
Der Artikel ist übrigens von 2007 und zum Teil nicht mehr aktuell. Gerade die aktuellen Browser lasten aktuelle DSL Verbindungen schon gut aus.
|
|
IhopeonlyReader
Beiträge: 600
Erhaltene Danke: 23
Delphi 7 PE
|
Verfasst: So 01.09.13 19:31
Martok hat folgendes geschrieben : | Das ist der HTTP-Header Range im Request und Content-Range in der Antwort. Wenn der Server das nicht kann/will(z.B. wenn die Daten Schrittweise generiert werden), gehts halt nicht. |
kann man das mit einem TCP-Server vergleichen (wie von einem von mir programmierten Download-Server?)
_________________ Sucht "neueres" Delphi
Wer nicht brauch was er hat, brauch auch nicht was er nicht hat!
|
|
jaenicke
Beiträge: 19286
Erhaltene Danke: 1743
W11 x64 (Chrome, Edge)
Delphi 11 Pro, Oxygene, C# (VS 2022), JS/HTML, Java (NB), PHP, Lazarus
|
Verfasst: So 01.09.13 19:37
IhopeonlyReader hat folgendes geschrieben : | Das hieße ja, es wird eine Quelle mehrfach angezapft und somit die Downloadgeschwindigkeit anderer Downloader gehämmt, da man sozusagen 3 von 100 Usern ist und die anderen nur 1 von 100.. Ebenfalls: wenn alle "Downloaduser" das nutzten würden, wäre es endgültig genau so schnell und der Server mit den vielen Clients eher überfordert oder? |
Nicht unbedingt. Wenn z.B. Pakete nicht ankommen, wartet man darauf, fordert sie erneut an, usw., zudem kommt es z.B. durch Latenzen zu Schwankungen.
Wenn man mehrere Verbindungen parallel hat, nutzt eine solche Schwankung dann eine der anderen Verbindungen aus, so dass du insgesamt eine konstantere Geschwindigkeit hast. Soweit zur Clientseite.
Auf Serverseite kann es natürlich zu genau dem von dir beschriebenen Effekt kommen, wenn denn der Server der Flaschenhals ist. Wenn der Server die Verbindung aber pro IP limitiert und nicht pro Verbindung, hilft dir das nicht weiter.
IhopeonlyReader hat folgendes geschrieben : | kann man das mit einem TCP-Server vergleichen (wie von einem von mir programmierten Download-Server?) |
Das ist ein HTTP-Server ja, ein TCP-Server, der das HTTP-Protokoll parst usw.
Schreibst du einen eigenen, kannst du dieses Flag natürlich genauso ignorieren wie du das bei einem der vorhandenen Server konfigurieren kannst.
|
|
IhopeonlyReader
Beiträge: 600
Erhaltene Danke: 23
Delphi 7 PE
|
Verfasst: So 01.09.13 20:14
jaenicke hat folgendes geschrieben : | Das ist ein HTTP-Server ja, ein TCP-Server, der das HTTP-Protokoll parst usw.
Schreibst du einen eigenen, kannst du dieses Flag natürlich genauso ignorieren wie du das bei einem der vorhandenen Server konfigurieren kannst. |
warum ignorieren? ich müsste es überhaupt einmal einbauen oder?
wenn ich einen Downloadserver mit TServersocket bauen würde und aufs clientconnect Ereignis anfängen würde eine Datei oder sonst was zu senden!
wie soll es dann möglich sein mitten drin anzufangen?
wenn auf dem Server sagen wir 16384 Pakete á 64 kb liegen (insg. 1 GB) und ich dann Client für Client durchgehe
Delphi-Quelltext 1: 2: 3: 4: 5: 6: 7: 8:
| For C:=1 to VerbundeneClients do begin SendStream( Paket[ VerbundeneClient[C].PaketNr ); inc( Paket[ VerbundeneClient[C].PaketNr ); if Paket[ VerbundeneClient[C].PaketNr >= High(Paket) then VerbundeneClient.Socket.Close; end; |
natürlich wäre eine "mitten drin steig ich ein"-Methode leicht einzubauen! aber IST nicht eingebaut, wie also darf ich das "ignorieren" verstehen?
_________________ Sucht "neueres" Delphi
Wer nicht brauch was er hat, brauch auch nicht was er nicht hat!
|
|
jaenicke
Beiträge: 19286
Erhaltene Danke: 1743
W11 x64 (Chrome, Edge)
Delphi 11 Pro, Oxygene, C# (VS 2022), JS/HTML, Java (NB), PHP, Lazarus
|
Verfasst: So 01.09.13 21:28
Das ist so aber auch erst einmal kein HTTP-Server.
Der parst ja das Protokoll. Und da kann das Flag ja nun einmal vorkommen und du kannst es ignorieren. Ankommen kann es ja trotzdem.
|
|
hathor
Ehemaliges Mitglied
Erhaltene Danke: 1
|
Verfasst: So 01.09.13 22:31
|
|
IhopeonlyReader
Beiträge: 600
Erhaltene Danke: 23
Delphi 7 PE
|
Verfasst: Mo 02.09.13 12:53
wie könnte ich von einem Downloader herausfinden mit wem er wie (IP, Port, TCP/UDP) verbunden ist und wie kann ich dann mittendrin beginnen?
geht das "einfach" mit Delphi? oder wirkt es nur einfach und steckt sehr viel mehr dahinter?
_________________ Sucht "neueres" Delphi
Wer nicht brauch was er hat, brauch auch nicht was er nicht hat!
|
|
jaenicke
Beiträge: 19286
Erhaltene Danke: 1743
W11 x64 (Chrome, Edge)
Delphi 11 Pro, Oxygene, C# (VS 2022), JS/HTML, Java (NB), PHP, Lazarus
|
Verfasst: Mo 02.09.13 14:36
Du kannst Wireshark benutzen. In 99,9% der Fälle dürfte das normale HTTP Protokoll benutzt werden...
|
|
Janina
Hält's aus hier
Beiträge: 3
|
Verfasst: Mi 20.11.13 23:34
Finde auch, dass "Wireshark" ein sehr brauchbares Programm ist.
Allerdings sind die Downloads mit den heutigen DSL Anschlüssen schon sehr schnell, oder . Anders siehts im mobilen Bereich aus. Da würde mich mal interessieren, wie man die Tablet Downloadgeschwindigkeit beschleunigen könnte ... Da fühle ich mich schon oft von genervt.
|
|
jaenicke
Beiträge: 19286
Erhaltene Danke: 1743
W11 x64 (Chrome, Edge)
Delphi 11 Pro, Oxygene, C# (VS 2022), JS/HTML, Java (NB), PHP, Lazarus
|
Verfasst: Mi 20.11.13 23:40
|
|
|