HTML Webserver

Übersicht BlitzMax, BlitzMax NG Beginners-Corner

Neue Antwort erstellen

kog

Betreff: HTML Webserver

BeitragSa, Sep 23, 2006 11:50
Antworten mit Zitat
Benutzer-Profile anzeigen
Guten tag, ich habe mal wieder eine weitere Frage:

Derzeit arbeite ich an einem HTML Webserver, aber das problem ist, sobald man eine Datei anklickt die über 8 MB gross ist stürtzt das Programm ab, ist ja auch klar wenn es die gesamte Datei auslesen muss und versenden, hier ist der derzeitige Code:
BlitzBasic: [AUSKLAPPEN]
Function writepage(page:String)
Local fileR:TStream=ReadStream(page)
Local fileS:Int=FileSize(page)
Local bytes:Byte[fileS]

' Send stream
While (Not Eof(fileR))

' NOTE! Only byte Read/Write here so binaries works as expected
Local Read:Int = fileR.ReadBytes(bytes, fileS)
clientStream.WriteBytes(bytes, Read)

Wend

' Close stream
CloseStream(fileR)
End Function


Ich hatte schon versucht mit Banks zu arbeiten aber ging irgendwie auch nicht, wäre schön wenn mir einer eine Idee hätte.

Achja, hätte auch einer eine idee wie ich den PHP Interpreter einbaue?

Artemis

BeitragSa, Sep 23, 2006 12:08
Antworten mit Zitat
Benutzer-Profile anzeigen
Die php.exe(auf win) kann man per Kommandozeile aus bedienen. Das heißt du führst die aus, und lekst die Ausgabe in einen Stream um, den du ausliest. Fertig.

kog

BeitragSa, Sep 23, 2006 12:14
Antworten mit Zitat
Benutzer-Profile anzeigen
Gibt es irgendwo ein Tutorail dazu?

Artemis

BeitragSa, Sep 23, 2006 12:18
Antworten mit Zitat
Benutzer-Profile anzeigen
http://www.php.net/manual/de/f...ndline.php

kog

BeitragSa, Sep 23, 2006 16:33
Antworten mit Zitat
Benutzer-Profile anzeigen
Das hat mir schon geholfen, doch ich versuche dies in BMax einzubauen, aber meine bisherigen Tests gingen nicht:
BlitzBasic: [AUSKLAPPEN]
Local stream:TStream = ReadStream(phpdir+"php.exe -f test.php")
Notify ReadLine(streaM)


doch es kommt ein error
 

Dreamora

BeitragSa, Sep 23, 2006 16:38
Antworten mit Zitat
Benutzer-Profile anzeigen
Jo das ist ja auch rechter Blödsinn.
du versuchst da effektiv die exe auszulesen, was glaub ziemlich offenensichtlich als "what the heck" eingestufft werden kann.


Was du suchst ist Pub.FreeProcess und die Pipe von welcher du Rückgaben dann auslesen und auswerten kannst.
Ihr findet die aktuellen Projekte unter Gayasoft und könnt mich unter @gayasoft auf Twitter erreichen.

kog

BeitragSa, Sep 23, 2006 17:59
Antworten mit Zitat
Benutzer-Profile anzeigen
Hätte auch noch jemand eine Idee wie man auch grosse dateien anbieten kann?
 

Dreamora

BeitragSa, Sep 23, 2006 18:21
Antworten mit Zitat
Benutzer-Profile anzeigen
Indem du immer nur ein wenig in den Stream schreibst (ein paar bytes) und weiter gehst zur Abarbeitung des nächsten anstehenden Jobs beim nächsten vorbei kommen wieder ein paar Bytes brauchst.

Normalerweise macht man das per Multithreading, gibt es aber in Blitz (weder alte noch Max) nicht.
Ihr findet die aktuellen Projekte unter Gayasoft und könnt mich unter @gayasoft auf Twitter erreichen.

kog

BeitragSa, Sep 23, 2006 19:05
Antworten mit Zitat
Benutzer-Profile anzeigen
Nunja, bei einer dateigrösse von 250 mb stürtz er trotzdem noch ab

*edit*
Achja, sobald man den Download Abbricht stürtzt das Programm auch ab...
 

Dreamora

BeitragSa, Sep 23, 2006 19:14
Antworten mit Zitat
Benutzer-Profile anzeigen
vielleicht hat dein system ja ganz einfach zu wenig speicher um 500MB zu halten? (250 beim server und 250 beim client)

um das mit dem crash zu verhindern musst du halt überprüfen ob der stream überhaupt noch existiert.
Ihr findet die aktuellen Projekte unter Gayasoft und könnt mich unter @gayasoft auf Twitter erreichen.

kog

BeitragDo, Sep 28, 2006 18:43
Antworten mit Zitat
Benutzer-Profile anzeigen
Dies funktioniert leider nicht.. egal welche If abfrage ich machen Sad

Neue Antwort erstellen


Übersicht BlitzMax, BlitzMax NG Beginners-Corner

Gehe zu:

Powered by phpBB © 2001 - 2006, phpBB Group