AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Programmierung allgemein Netzwerke Delphi ServerSocket/TcpServer als Webserver -> Schwierigkeiten
Thema durchsuchen
Ansicht
Themen-Optionen

ServerSocket/TcpServer als Webserver -> Schwierigkeiten

Ein Thema von Darkface · begonnen am 22. Nov 2009 · letzter Beitrag vom 19. Feb 2010
 
Darkface

Registriert seit: 18. Apr 2008
89 Beiträge
 
Delphi XE Professional
 
#1

ServerSocket/TcpServer als Webserver -> Schwierigkeiten

  Alt 22. Nov 2009, 09:23
Hiho DP'ler,

Ich habe vor einen kleinen Webserver zu schreiben der einfach auf Anfrage eines Browsers eine sich ständig ändernde Webseite ausgibt.

Ich dachte mir also ich nehme mir die ServerSocket Komponente oder alternativ die TcpServer Komponente und reagiere einfach immer wenn ein Browser eine Anfrage sendet damit drauf das ich dem Browser simpel mit SendText den Quellcode der Seite rüberschiebe.

Das funktioniert aber mit beiden Komponenten nur halb.

Delphi-Quellcode:
procedure TForm1.ServerSocket1ClientRead(Sender: TObject;
  Socket: TCustomWinSocket);
var i:Integer;
begin
    s:=Socket.ReceiveText;
    Memo1.Lines.Add(s);
    For i:=0 to ServerSocket1.Socket.ActiveConnections -1 do begin
        ServerSocket1.Socket.Connections[i].SendText('<html><head><meta http-equiv="refresh" content="1; URL=/"></head><body>It Works? Or?
        +IntToStr(Random(10000)) +'</body></html>');
        //ServerSocket1.Active:=False;
        //ServerSocket1.Active:=True;
    end;
end;
Das war der sehr unsaubere Code um auf die Anfrage des Browsers mittels ServerSocket zu reagieren. Wie ihr sehr es soll nicht schön sein sondern einfach nur funktionieren . Problem dabei, der Browser würde unendlich lang die Webseite laden wenn ich nicht mittels ServerSocket1.Active die Verbindung kurz unterbrechen würde. Wenn ich das tue wird die Webseite dann auch Problemlos im Browser angezeigt. Das ist aber selbst mir zu unsauber - sobald mehrere Leute versuchen die Seite aufzurufen bekomme ich Probleme, da fliegen mir teils Exceptions um die Ohren und die Browser zeigen immerwieder an das die Verbindung abgebrochen/zurückgesetzt ect. ist.

Beim TcpServer habe ich es ähnlich versucht...
- empfangen der Browser Anfrage
- die in Memofeld schreiben
- *Browser das Stückchen rohes Fleisch hinwerf* (Per SendText den Quellcode rübersenden)

Also imprinzip wie oben. Problem ist hier das der Browser nur bei jedem 5ten Versuch die Webseite anzeigt - dann auch korrekt. Bei den anderen 4 Versuchen kommt ein "Verbindung zurückgesetzt". Beim TcpServer habe ich übrigens nicht das Problem mit dem "unendlichen Laden" der Seite, wenn die Seite angezeigt wird dann richtig.

Wie bekomme ich das ganze also zuverlässiger hin? Wo hängts? Weis da jemand Rat
Alexander
Ich halte Ordnung.
Zum Beispiel mein Schreibtisch: Hier ist alles zeitlich geordnet - was zuletzt kam, liegt oben. (Frank Erhoff)
  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 06:07 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