Datei Downloaden

Übersicht BlitzMax, BlitzMax NG Beginners-Corner

Neue Antwort erstellen

HackerBoyZ

Betreff: Datei Downloaden

BeitragMo, Feb 22, 2010 13:43
Antworten mit Zitat
Benutzer-Profile anzeigen
Hi, ich weis wie man eine Date downloadet, jedoch geht das immer etwas extrem langsam, egal ob "copystream()" oder einzelt mit "readbyte()/writebyte()" beides gleichlahm.

Gibt es eine schnellere Methode?
Danke

BladeRunner

Moderator

BeitragMo, Feb 22, 2010 14:30
Antworten mit Zitat
Benutzer-Profile anzeigen
readbytes, da es enorm bremst wenn man einzelne bytes zieht.
Zu Diensten, Bürger.
Intel T2300, 2.5GB DDR 533, Mobility Radeon X1600 Win XP Home SP3
Intel T8400, 4GB DDR3, Nvidia GF9700M GTS Win 7/64
B3D BMax MaxGUI

Stolzer Gewinner des BAC#48, #52 & #92

HackerBoyZ

BeitragMo, Feb 22, 2010 15:49
Antworten mit Zitat
Benutzer-Profile anzeigen
danke

BtbN

BeitragMo, Feb 22, 2010 15:50
Antworten mit Zitat
Benutzer-Profile anzeigen
Man wird mit BMax niemals den Download-Speed erreichen, da der Algorithmus, welcher verwendet wird, um sich an die Maximale geschwindigkeit anzunähern, sehr schwer selbst zu implementieren ist. Bzw. hat dies noch keiner getan.

Die einfachste Methode dürfte es sein, direkt die Read-Methode mit 1KB oder 4KB Blöcken aufzurufen, ist zwar immernoch nicht so schnell wie möglich, aber schon deutlich flotter.

HackerBoyZ

BeitragMo, Feb 22, 2010 15:53
Antworten mit Zitat
Benutzer-Profile anzeigen
sry aber welche "read methode" ?

[EDIT] ah ok... schon klar... da kommt aber bei mir immer ein "Error reading from stream"
BlitzMax: [AUSKLAPPEN]
While Not Eof( downloadstream )

Local byteptr:Byte Ptr

downloadstream.readbytes( byteptr, 1024 )
file.WriteBytes(byteptr, 1024 )

Wend

Progger93

BeitragMo, Feb 22, 2010 19:52
Antworten mit Zitat
Benutzer-Profile anzeigen
Passiert dann wenn im Stream z.B. noch 500 Bytes sind du allerdings versuchst 1024 auszulesen. Eof() gibt nur aus ob noch Bytes im Stream sind, nicht wie viele.
MfG Pascal
Win 7|T7250@2.0Ghz|3GB RAM|M8600GT

juse4pro

BeitragMo, Feb 22, 2010 21:09
Antworten mit Zitat
Benutzer-Profile anzeigen
ich bin mir grade nicht sicher, aber gab es da nicht einen befehl: ByteAvail, oder so? ^^
Portfolio |LinkedIn |XING

Progger93

BeitragMo, Feb 22, 2010 21:23
Antworten mit Zitat
Benutzer-Profile anzeigen
es gibt auf jedenfall die Methode TStream.Size(), allerdings weiß ich nichtmehr ob das ganze bei HTTP Streams funktioniert...
MfG Pascal
Win 7|T7250@2.0Ghz|3GB RAM|M8600GT

mpmxyz

BeitragMo, Feb 22, 2010 21:33
Antworten mit Zitat
Benutzer-Profile anzeigen
Ich habe gerade den ReadAvail-Ersatz gefunden:
Schaut im Modul brl.Socket!
TStream.Size() funktioniert nicht, da ein SocketStream nicht "seekable" ist.
Dieser Befehl gibt dann immer nur 0 aus.
mfG
mpmxyz
Moin Moin!
Projekte: DBPC CodeCruncher Mandelbrot-Renderer

Jolinah

BeitragMo, Feb 22, 2010 21:40
Antworten mit Zitat
Benutzer-Profile anzeigen
Hallo,

Die ReadBytes-Methode gibt die Anzahl an gelesenen Bytes zurück:

BlitzMax: [AUSKLAPPEN]

Local gelesen:Int = stream.ReadBytes(buf, 1024)
file.WriteBytes(buf, gelesen)

D2006

Administrator

BeitragMo, Feb 22, 2010 21:48
Antworten mit Zitat
Benutzer-Profile anzeigen
@HackerBoyZ:
Ist dein Code-Ausschnitt absichtlich so gekürzt? Wenn du das wirklich so machst, muss es ja krachen!
Du musst natürlich noch einen Buffer anlegen und somit Speicher reservieren. In deinem Ausschnitt übergibst du einfach einen Pointer, der irgendwo hin zeigt. Das kann nicht gut enden.
Intel Core i5 2500 | 16 GB DDR3 RAM dualchannel | ATI Radeon HD6870 (1024 MB RAM) | Windows 7 Home Premium
Intel Core 2 Duo 2.4 GHz | 2 GB DDR3 RAM dualchannel | Nvidia GeForce 9400M (256 MB shared RAM) | Mac OS X Snow Leopard
Intel Pentium Dual-Core 2.4 GHz | 3 GB DDR2 RAM dualchannel | ATI Radeon HD3850 (1024 MB RAM) | Windows 7 Home Premium
Chaos Interactive :: GoBang :: BB-Poker :: ChaosBreaker :: Hexagon :: ChaosRacer 2

HackerBoyZ

BeitragMo, Feb 22, 2010 22:51
Antworten mit Zitat
Benutzer-Profile anzeigen
ist nur ein ausschnit... Funktioniert auch alles fein, Danke!!

aber... schneller ist es auch nicht Sad

Neue Antwort erstellen


Übersicht BlitzMax, BlitzMax NG Beginners-Corner

Gehe zu:

Powered by phpBB © 2001 - 2006, phpBB Group