[Erledigt] Größe eines (TCP/HTTP-)Streams herausfinden

Übersicht BlitzMax, BlitzMax NG Allgemein

Neue Antwort erstellen

 

E. Urbach

ehemals "Basicprogger"

Betreff: [Erledigt] Größe eines (TCP/HTTP-)Streams herausfinden

BeitragSa, Apr 29, 2006 12:56
Antworten mit Zitat
Benutzer-Profile anzeigen
Wie finde ich heraus, wie viele Bytes man in einem Stream noch auslesen kann?
Ist das überhaupt möglich?

Ich habe nämlich die Funktion

Code: [AUSKLAPPEN]
StreamSize

probiert, aber diese liefert immer 0.
Auch im Quelltext des Moduls steht:

Code: [AUSKLAPPEN]
Return 0

Ist diese Funktion etwa noch nicht fertig programmiert?
Gibt es Alternativen?
  • Zuletzt bearbeitet von E. Urbach am So, Apr 30, 2006 10:28, insgesamt 2-mal bearbeitet

rema

BeitragSa, Apr 29, 2006 16:02
Antworten mit Zitat
Benutzer-Profile anzeigen
TCP unterstützt sowas nicht. Das geht nur in der nächst höheren Protokollebene, wie zbsp FTP oder HTTP. Und diese Infos sind normalerweise im Header dieser Protokolle enthalten, bzw kannst du diese auch seperat abrufen.
 

E. Urbach

ehemals "Basicprogger"

BeitragSo, Apr 30, 2006 9:39
Antworten mit Zitat
Benutzer-Profile anzeigen
Zitat:
wie zbsp FTP oder HTTP. Und diese Infos sind normalerweise im Header dieser Protokolle enthalten

Ich hab das auch mit HTTP versucht, aber leider ist dies nicht immer so. Wenn ich per HTTP auf eine .php Datei zugreife, dann sind diese Daten im Header leider nicht vorhanden. Bei .zip Dateien steht im Header dann:
Code: [AUSKLAPPEN]
Content-Length: <Bytes>

Weiss vielleicht jemand wie ich diese Daten bei .php Dateien ermittle?

[EDIT]
Erledigt, für mein Projekt wird diese Information nicht weiter benötigt.
Dennoch weiß ich immer noch nicht wie die Antwort auf die letzte Frage lautet.
[/EDIT]
  • Zuletzt bearbeitet von E. Urbach am So, Apr 30, 2006 11:25, insgesamt einmal bearbeitet

BtbN

BeitragSo, Apr 30, 2006 10:37
Antworten mit Zitat
Benutzer-Profile anzeigen
Die Antwort darauf ist: Garnicht
Der Server kann dir nicht sagen, wie viele Daten das PHP-Script an dich rausfeuert, wird bei allen Scripten so sein, die Serverseitig evaluiert werden.

Jolinah

BeitragSo, Apr 30, 2006 13:43
Antworten mit Zitat
Benutzer-Profile anzeigen
Doch das geht, zumindest bei meinem Webserver. Serverseitige Scripte werden erst intern abgearbeitet, und die ganze Ausgabe wird generiert. Dann wird die Ausgabe per HTTP-Protokoll gesendet, also weiss der Server wie lang der Inhalt ist.

Auszug von einem kleinen B3D Test auf eine index.php:

Code: [AUSKLAPPEN]
...
X-Powered-By: PHP/5.0.4
Content-Length: 184
...

SoNenTyp

BeitragSo, Apr 30, 2006 14:34
Antworten mit Zitat
Benutzer-Profile anzeigen
Das macht aber nicht jeder Server so, ist einstellungssache, und bei vielen Scripten wird der Puffer vorzeitig gelehrt. Wodurch das Senden des HTTP Headers ausgelößt wird.
Gruss Der Typ.

User posted image

Jolinah

BeitragSo, Apr 30, 2006 15:18
Antworten mit Zitat
Benutzer-Profile anzeigen
Ok Smile

Dann gibts aber noch die Möglichkeit beim Stream abzufragen wieviel Bytes gelesen werden können, was ursprünglich die Frage war:

Bei normalen SocketStreams müsste es so gehen:
Code: [AUSKLAPPEN]
Local bytes:Int = stream.Socket().ReadAvail()

Neue Antwort erstellen


Übersicht BlitzMax, BlitzMax NG Allgemein

Gehe zu:

Powered by phpBB © 2001 - 2006, phpBB Group