Byte-Download sehr langsam?

Übersicht BlitzBasic BlitzPlus

Neue Antwort erstellen

 

maxinet

Betreff: Byte-Download sehr langsam?

BeitragSa, Apr 21, 2007 19:33
Antworten mit Zitat
Benutzer-Profile anzeigen
Hallo,
ich hab ein Problem mit einem Download via ReadByte - WriteByte. Doch leider ist es irgendwie sehr langsam.

Code: [AUSKLAPPEN]
bytes$=ReadByte(tcp)
status_bytes#=(status_bytes#+1)
WriteByte(fp,bytes$)
status_bar#=(status_bytes#/size#)


Schneller ist es so:

Code: [AUSKLAPPEN]
WriteByte fp, ReadByte(tcp)


Dann habe ich aber keine Status-Anzeige. Hat jemand 'ne Idee??

Gruss MaXi!
 

Dreamora

BeitragSa, Apr 21, 2007 19:44
Antworten mit Zitat
Benutzer-Profile anzeigen
schreiben und lesen auf TCP ist eine locking operation. solange das byte nicht sauber übertragen ist wartet das programm.

pack die daten gescheit in nachrichten und schick nicht einzelne bytes sondern ganze blöcke. damit sollte sich das problem beträchtlich entschärfen
Ihr findet die aktuellen Projekte unter Gayasoft und könnt mich unter @gayasoft auf Twitter erreichen.

Smily

BeitragSa, Apr 21, 2007 20:25
Antworten mit Zitat
Benutzer-Profile anzeigen
oO
@Maxi: was hat das eine mit dem Anderen zutun? Was du erreichen willst kannst du einfach so machen:

Code: [AUSKLAPPEN]
status_bytes#=(status_bytes#+1)
status_bar#=(status_bytes#/size#)
WriteByte fp,ReadByte(tcp)


Aber ich glaube nicht, dass das wirklich besser ist.
Versuch es lieber mit banken ^^
Lesestoff:
gegen Softwarepatente | Netzzensur | brain.exe | Unabhängigkeitserklärung des Internets

"Wir müssen die Rechte der Andersdenkenden selbst dann beachten, wenn sie Idioten oder schädlich sind. Wir müssen aufpassen. Wachsamkeit ist der Preis der Freiheit --- Keine Zensur!"
stummi.org

Lunatix

BeitragSa, Apr 21, 2007 21:13
Antworten mit Zitat
Benutzer-Profile anzeigen
mh also 1. gibt Readbyte ein Int zurück, weshalb die variable schonmal ein Integer sein sollte 2. glaub ich eher, das du einen Statusbalken anzeigst und das etwas zu oft, alle 500-1000 millisekunden reicht, 3. kannst du deine statusbytes erhöhen, ohne noch ein extra variable für readbyte zu nutzen...
[size=9]Pro|gram|mier|er: Ein Organismus, der Koffein in Software umwandelt.
Geben Sie eine beliebige 11-stellige Primzahl ein, um fortzusetzen...

Hip Teen

BeitragSa, Apr 21, 2007 22:45
Antworten mit Zitat
Benutzer-Profile anzeigen
Also, Downloads via Readbyte/Writebyte sind so ätzend langsam, ich würd das lassen. Verwendet dafür lieber ReadBytes/Writebytes (kleiner, aber feiner unterschied Wink ). Sieht dann so aus:

Code: [AUSKLAPPEN]
Repeat
   size = ReadBytes (bank, stream, 0,100)
   WriteBytes (bank, file,0,size)
Until Eof (stream)


bank ist eine bank, die in dem Fall 100 Byte groß sien muss, stream enthält den Netzwerkstream, von dem kopiert wird, file hat die fileID, in die geschireben wird. Über die Variable size kannst du dann auch den Statusbalken erstellen.
Mit diesem Code hab ich sowohl meine Internet- als auch Netzwerkleitung ausgereizt. So hängt die Grenze nicht mehr an der Soft- sondern Hardware.
Spruch der Woche: "Ahh, ein neues Gesicht?!" - "Nein, das hab ich schon länger"

Neue Antwort erstellen


Übersicht BlitzBasic BlitzPlus

Gehe zu:

Powered by phpBB © 2001 - 2006, phpBB Group