AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Thema durchsuchen
Ansicht
Themen-Optionen

WebServer

Ein Thema von lucy · begonnen am 26. Okt 2022 · letzter Beitrag vom 27. Okt 2022
 
Delphi.Narium

Registriert seit: 27. Nov 2017
2.558 Beiträge
 
Delphi 7 Professional
 
#14

AW: WebServer

  Alt 27. Okt 2022, 10:05
Grob gesagt: WebServer mit Delphi erstellen: Geht.
Man kann auch mit einem Hammer eine Schraube in die Wand bekommen. Die Frage ist nur, ob das das optimal geeignete Werkzeug für diese Aufgabe ist. Und wenn es schon Delphi sein muss, würde ich mich nicht selbst kasteien, sondern lieber auf entsprechende Frameworks zurückgreifen (dieses TMS-Dings, mORMot, DMVC, MARS Curiosity etc.).
Es geht doch garnicht darum ein optimales Werkzeug für was auch immer zu finden, sondern darum zu versuchen, ob es geht. Zumindest verstehe ich die Aufgabenstellung im Eingangsthread so.

Und nein, wenn man's mit reinem Delphi und den Indykomponenten macht, muss man sich nicht kasteien.
Delphi-Quellcode:
     
      sFilename := Format('%s%s',['htdocs',ARequestinfo.Document]);
      if FileExists(sFilename) then
      begin
        Stream:=TFileStream.Create(sFilename, fmOpenRead or fmShareDenyWrite);
      end
      else
      begin
        Stream:=TFileStream.Create('htdocs/index.html', fmOpenRead or fmShareDenyWrite);
      end;
      // Hier muss man noch den ContentType abhängig von dem Dateityp, setzen.
      AResponseinfo.ContentType:='text/html';
      AResponseinfo.ContentStream:=Stream;
      setlength(Groesse, Stream.Size);
      Stream.Read(Groesse[1], Stream.Size);
      Memo1.Lines.Add(datetostr(date) + ' | ' + timetostr(time) + ': Client ' + ARequestinfo.RemoteIP + ' hat die Datei ' + sFilename + ' (' + inttostr(round(Stream.Size /1024)) + 'kb) angefordert.');
Damit kann man dann auch CSS, Bilder, und was sonst noch so alles auf der Festplatte rumliegt, ausliefern.

CGI-Programme ruft man mit dem TIDCGIRunner im Prinzip in der Form auf:

CGIRunner.Execute(ARequestinfo.Document,AContext,RequestInfo,ResponseInfo,Action);

Ist also auch "nur" ein Einzeiler, geht auch mit .bat, .cmd, .pl für Perl, ..., ist ähnlich simpel wie ShellExecute.

Und ja: Als professionelle Lösung nicht geeignet, aber ist die hier gefordert?
  Mit Zitat antworten Zitat
 


Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 17:28 Uhr.
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz