[SOCKETS] Mehrere SOCKETS gleichzeitig Daten downloaden lassen für mehr Speed
-
Guten Abend!
Ich habe mir den Artikel Sockets und das HTTP-Protokoll durchgelesen und mir auch ein kleines Programm gebaut was meine Website herunterläd
Allerdings würde ich gerne auch ein etwas größere Programm bauen. Da das Programm eine große Menge an Daten übertragen soll und teilweise auch von Server die keine ganz so hohe Bandbreite haben, würde ich das Programm gerne so schreiben, dass mehrere SOCKETS die Daten (wenn möglich) gleichzeitig abrufen damit die eigene Bandbreite voll ausgelastet wird und alle ein bischen schneller geht.
Hier nur ein kleines Beispiel was ich meine: http://www.pictureupload.de/originals/pictures/350/170208211420_CppBeispiel.jpg
So wäre hier die ganze Zeit über die 3 MBit ausgelastet und nicht so wie im oberen Beispiel jeweils nur 1 MBit.
Gibt es die möglichkeit das zu realiesieren? Soweit ich weiss arbeiten Downloadmanager wie GetRight mit einer ähnlichen Methode.
Hab schon angefangen sämtliche Veriablen wie zB. Socket und result mit einem Index (für Arrays) zu versehen damit man mehrer davon starten kann und vorher wählen kann wieviele.
Hab auch schon bei Google geguckt doch nichts gefunden.Wäre echt nett wenn Ihr mir helfen könnt!
Thx,
FeGm
-
Wo ist das Problem? Du kannst doch mehrere Dateien gleichzeitig runter laden. Dafür kannst du entweder dein Programm mehrfach starten. Threads benutzen, oder den Systembefehl select.
-
Danke für die schnelle Antwort!
Wie nutzt man Threads und wofür ist select?
Das Programm mehrfach starten finde ich nicht ganz so "konfortabel"
-
FeGm schrieb:
Wie nutzt man Threads und wofür ist select?
Mit eine Thread Biliothek. Meistens WinAPI oder pthreads, je nach Betriebssystem. Da du in C++ gefragt hast, würde ich dir Boost.Thread empfehlen.
Zu select siehe [1].
Mit solchen Fragen solltest du aber erstmal eine Suchmaschiene bemühen.
-
Super danke!
Hab schon nen bissl. gegooglet. Sollte wenn möglich unter Linux (Ubuntu, Debain) und Windows XP/2003/Vista laufen.
Falls jemandem noch gute Links einfallen, imemr her damit!
Ansonsten schonmal großes THX!
-
FeGm schrieb:
Super danke!
Hab schon nen bissl. gegooglet. Sollte wenn möglich unter Linux (Ubuntu, Debain) und Windows XP/2003/Vista laufen.
Das sollte mit select auf jeden Fall gehen.
Bei Threads brauchst du eine Plattformunabhängige Biliothek, wie z.B. Boost.Thread [1].
Threads sind nicht einfach zu benutzten. Und select ist auch nicht so unbedingt leicht. Ich würd dir Threads empfehlen, aber informier dich vorher gründlich, was mit Threads schief gehen kann (Stichwort: Synchronisation), sonst krigst du schnell undefinierte Programm-Abstürze.
-
Super danke!
Hab auch noch was (wenn auch aus 9x-Zeiten): http://www.codeworx.org/cpp_tuts_1_5.php
-
Das ist allerdings WIndows-spezifisch.
Ich würde bei sowas immer eine schön designte, in C++ geschriebene Bibliothek wie boost.thread bevorzugen.
-
Oh danke für den Tipp!
Ich werd mir eine Suchen danke!
-
Dieser Thread wurde von Moderator/in HumeSikkins aus dem Forum C++ in das Forum Rund um die Programmierung verschoben.
Im Zweifelsfall bitte auch folgende Hinweise beachten:
C/C++ Forum :: FAQ - Sonstiges :: Wohin mit meiner Frage?Dieses Posting wurde automatisch erzeugt.