AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Programmierung allgemein Netzwerke Delphi Konzeptfrage - Internet-Chat als Freeware, wie?
Thema durchsuchen
Ansicht
Themen-Optionen

Konzeptfrage - Internet-Chat als Freeware, wie?

Ein Thema von hincapie · begonnen am 20. Feb 2008 · letzter Beitrag vom 19. Mär 2008
Antwort Antwort
Seite 3 von 4     123 4      
Benutzerbild von hincapie
hincapie

Registriert seit: 24. Mär 2005
200 Beiträge
 
Delphi 5 Professional
 
#21

Re: Konzeptfrage - Internet-Chat als Freeware, wie?

  Alt 26. Feb 2008, 11:41
Für alle, die's interessiert:

Hier der Link zum entsprechenden Thread im Delphi-Forum:
http://www.delphi-forum.de/viewtopic.php?t=80977
  Mit Zitat antworten Zitat
Jeopardize

Registriert seit: 20. Mär 2007
Ort: Villach
65 Beiträge
 
Turbo Delphi für .NET
 
#22

Re: Konzeptfrage - Internet-Chat als Freeware, wie?

  Alt 26. Feb 2008, 13:56
Ich hab irgendwo einmal das Tutorial gefunden. Vielleicht hilft es.
Angehängte Dateien
Dateityp: zip socket_-_chat_programmierung_498.zip (24,8 KB, 16x aufgerufen)
  Mit Zitat antworten Zitat
Benutzerbild von hincapie
hincapie

Registriert seit: 24. Mär 2005
200 Beiträge
 
Delphi 5 Professional
 
#23

Re: Konzeptfrage - Internet-Chat als Freeware, wie?

  Alt 27. Feb 2008, 08:51
Zitat von Jeopardize:
Ich hab irgendwo einmal das Tutorial gefunden. Vielleicht hilft es.
Nichts für ungut, aber den eigentlichen Chat habe ich schon längst programmiert...
siehe erstes Posting...
  Mit Zitat antworten Zitat
Benutzerbild von Xong
Xong

Registriert seit: 9. Jan 2008
186 Beiträge
 
Delphi 2006 Professional
 
#24

Re: Konzeptfrage - Internet-Chat als Freeware, wie? [CGI]

  Alt 28. Feb 2008, 09:17
Zitat von hincapie:
Falls Du genügend Geduld hast, kannst Du mir das ja mal näher erläutern...
Ich bin soweit! =)

Ich erkläre dir das am besten anhand eines kleines Tutorials.
Achja, es geht um CGI.

Mein Testsystem ist das aktuelle XAMPPLITE-Paket von http://apachefriends.org. Ich gehe einfach mal davon aus, dass du auch einen Indianer zur Verfügung hast.

Meine gesamten Angaben beziehen sich auf http://httpd.apache.org/docs/2.0/howto/cgi.html.
  1. Warum eigentlich CGI?
    Das Common Gateway Interface stellt eine Schnittstelle zur Verfügung, die es uns erlaubt mit einem beliebigen Programm in einer beliebigen Programmiersprache Eingaben, die über eine Webseite kommen und vom HTTP Server an unser Programm weitergeleitet werden, zu verarbeiten und Ergebnisse auszugeben. Mächtig gewaltig (, Egon)!
  2. Die Konfiguration
    Normalerweise ist der Apache vom Start weg "CGI-fähig". Deswegen werde ich dazu keine weiteren Ausführungen machen. Eine gute Beschreibung, wie man den Apache für das CGI richtig konfiguriert, findet man im oben geposteten HowTo.
  3. Das erste CGI-Programm
    Ich erstelle in Delphi eine Konsolenanwendung mit folgendem Code:
    Delphi-Quellcode:
    program hw;

    {$APPTYPE CONSOLE}

    uses
      SysUtils;

    begin

      writeln(AnsiToUtf8('Content-type: text/html'));
      writeln;
      writeln(AnsiToUtf8('<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">'));
      writeln(AnsiToUtf8('<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="de" lang="de">'));
      writeln(AnsiToUtf8('<head>'));
      writeln(AnsiToUtf8('<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />'));
      writeln(AnsiToUtf8('<title>Beispielprogramm</title>'));
      writeln(AnsiToUtf8('</head>'));
      writeln(AnsiToUtf8('<body>'));
      writeln(AnsiToUtf8('<h1>Hallo Welt</h1>'));
      writeln(AnsiToUtf8('</body>'));
      writeln(AnsiToUtf8('</html>'));

    end.
    Diese Datei speichere ich als hw.exe im Verzeichnis <Installationspfad von XAMPP>/cgi-bin/ und rufe, nachdem ich den Apache gestartet habe, die URL http://127.0.0.1/cgi-bin/hw.exe auf. Als Ausgabe erhalte ich: "Hallo Welt!".
  4. Erklärung des Quellcodes
    Möchte man an den Browser etwas ausgeben, so muss man einfach in die Standardausgabe schreiben. Das geschieht mit der Funktion writeln automatisch.
    Als erstes muss ein Header angegeben werden. Dieser sagt dem Browser u.a. von welchem MIME-Typ die zu empfangende Ressource ist. In unserem Fall ein einfaches HTML-Dokument. Auf die Header müssen mindestens zwei Zeilenumbrüche folgen. Dann folgt der eigentliche Inhalt. Es dürfte eigentlich alles klar sein bis hier hin, oder?
  5. Eingaben auslesen
    Die GET-Parameter bekommt aus dem Querystring, die POST-Parameter über die Standardeingabe.
    Damit habe ich mich in Delphi noch nicht beschäftigt und verweise dich auf die Klasse TCGIRequest. Es ist ohne Probleme möglich, die Parameter einzulesen und weiterzuverarbeiten.
  6. Möglichkeiten und Fazit
    Mit einer CGI-Anwendung ist es nicht nur möglich HTML-Dokumente auszuliefern. Genauso gut kann man ein Bild berechnen und ausgeben. Oder ein Stylesheet. Oder eine Textdatei. Oder oder oder...
    CGI-Anwendungen sind mächtig und flexibel. Mit ihnen kann ein Programmierer in der Sprache seiner Wahl arbeiten und alles Mögliche realisieren.
    Auf jeden Fall sehr interessant und würdig, sich näher damit zu beschäftigen.

Ich habe übrigens auch noch ein Tutorial hier aus der DP gefunden: Eine einfache CGI-Anwendung (WinCGI.DLL).

Ich hoffe, das hilft dir weiter. =)

LG,
Xong
Angehängte Dateien
Dateityp: exe hw_916.exe (41,0 KB, 4x aufgerufen)
  Mit Zitat antworten Zitat
Benutzerbild von hincapie
hincapie

Registriert seit: 24. Mär 2005
200 Beiträge
 
Delphi 5 Professional
 
#25

Re: Konzeptfrage - Internet-Chat als Freeware, wie?

  Alt 29. Feb 2008, 08:13
@ Xong: Puuh, da stellst Du aber ganz schöne Ansprüche an mich...

Hab's mir erstmal einfach gemacht, Deine HW.exe auf meinen Webspace ins cgi-bin-Verzeichnis geladen und per Browser aufgerufen. Der bietet mir dann diese Datei zum Download an!!

Bei dem Tutorial mit der dll stellt sich mir die Frage, wie muss ich die denn ansprechen?

Du siehst, Du hast es hier mit einem totalen Anfänger in Sachen CGI zu tun...
  Mit Zitat antworten Zitat
Benutzerbild von Xong
Xong

Registriert seit: 9. Jan 2008
186 Beiträge
 
Delphi 2006 Professional
 
#26

Re: Konzeptfrage - Internet-Chat als Freeware, wie?

  Alt 29. Feb 2008, 08:26
Zitat von hincapie:
Hab's mir erstmal einfach gemacht, Deine HW.exe auf meinen Webspace ins cgi-bin-Verzeichnis geladen und per Browser aufgerufen. Der bietet mir dann diese Datei zum Download an!!
Das Problem ist, dass die Datei nicht ausgeführt wird. Es kann helfen, die Datei in hw.cgi umzubenennen.
Oder du erstellst ein neues Verzeichnis auf deinem Webspace und lädst die .htacces-Datei, die ich angehängt habe in dies Verzeichnis. Dann noch die hw.exe da rein und wenn du Glück hast funktioniert das.
Der Webspaceanbieter muss halt bei der ganzen Sache mitspielen. Schließlich sind ausführbare Programme immer auch ein Sicherheitsrisiko. Welchen Anbieter hast du? Oder hast du vielleicht sogar einen eigenen Server?

Zitat von hincapie:
Bei dem Tutorial mit der dll stellt sich mir die Frage, wie muss ich die denn ansprechen?
Endungen sind im Web nur Schall und Rauch. Du kannst die Datei auch schoko.pudding nennen. Solange der Webserver weiß, wie er damit umzugehen hat, ist alles andere egal.

Edit: Jetzt habe ich doch wirklich die Datei vergessen... -.-
Angehängte Dateien
Dateityp: zip htaccess_160.zip (166 Bytes, 5x aufgerufen)
  Mit Zitat antworten Zitat
Benutzerbild von hincapie
hincapie

Registriert seit: 24. Mär 2005
200 Beiträge
 
Delphi 5 Professional
 
#27

Re: Konzeptfrage - Internet-Chat als Freeware, wie?

  Alt 29. Feb 2008, 08:47
Ok, habe nun die hw.exe und die .htaccess in ein Verzeichnis geladen und versucht auszuführen.
Bekomme folgende Fehlermeldung im Browser:
Das Skript konnte nicht fehlerfrei ausgeführt werden.
Häufige Ursachen sind, dass das Skript nicht im ASCII-Modus hochgeladen oder der Interpreter (z.B.: #!/usr/bin/perl) nicht angegeben wurde.

Mein Anbieter ist übrigens www.hosteurope.de
  Mit Zitat antworten Zitat
Benutzerbild von hitzi
hitzi

Registriert seit: 2. Jan 2003
Ort: Eibau
768 Beiträge
 
Delphi 2010 Professional
 
#28

Re: Konzeptfrage - Internet-Chat als Freeware, wie?

  Alt 29. Feb 2008, 08:48
Kann man ein mit Delphi erstelltes Programm, einfach umbenennen und auf jeden belieben Webspace(Linux, Win), welcher natürlich CGI unterstützt, ausführen lassen???
CGI war für mich eigentlich immer nur eine Interpretersprache, wie PHP, nur mit einer anderen Syntax.


[EDIT] Soweit ich das jetzt gelesen habe, muss es ein Windowsserver sein. Hier gibt's von Sakura auch ein Tutorial dazu: http://www.delphipraxis.net/internal...ect.php?p=3215
Thomas
Besucht doch mal http://www.hitziger.net
  Mit Zitat antworten Zitat
Benutzerbild von Xong
Xong

Registriert seit: 9. Jan 2008
186 Beiträge
 
Delphi 2006 Professional
 
#29

Re: Konzeptfrage - Internet-Chat als Freeware, wie?

  Alt 29. Feb 2008, 09:19
Zitat von hincapie:
Ok, habe nun die hw.exe und die .htaccess in ein Verzeichnis geladen und versucht auszuführen.
Bekomme folgende Fehlermeldung im Browser:
Das Skript konnte nicht fehlerfrei ausgeführt werden.
Häufige Ursachen sind, dass das Skript nicht im ASCII-Modus hochgeladen oder der Interpreter (z.B.: #!/usr/bin/perl) nicht angegeben wurde.
Der Server erwartet also eine Textdatei. Er vermutet hinter der CGI-Anwendung ein Perlskript.

Zitat von hincapie:
Mein Anbieter ist übrigens www.hosteurope.de
Eigener Server oder ein Webhostingpaket?

Ich vermute mal, dass Host-Europe das Ausführen von Binärdateien unterbindet. Aber das müsstest du ggf. mit dem Support klären.
Allerdings denke ich, dass der Aufwand (evtl. auch vom Preis her) einfach zu groß wird. =)


Zitat von hitzi:
[EDIT] Soweit ich das jetzt gelesen habe, muss es ein Windowsserver sein. Hier gibt's von Sakura auch ein Tutorial dazu: http://www.delphipraxis.net/internal...ect.php?p=3215
Guter Punkt! Natürlich läuft ein unter Windows kompiliertes Delphiprogramm auch nur auf einem Windows-Server.
Das Problem von hincapie ist aber, dass der Server eine Textdatei vermutet, aber eine ausführbare Binärdatei bekommt.

Zitat von hitzi:
Kann man ein mit Delphi erstelltes Programm, einfach umbenennen und auf jeden belieben Webspace(Linux, Win), welcher natürlich CGI unterstützt, ausführen lassen???
CGI war für mich eigentlich immer nur eine Interpretersprache, wie PHP, nur mit einer anderen Syntax.
Unter Punkt 1 (Warum eigentlich CGI?) habe ich geschrieben, dass CGI nur eine Schnittstelle ist. Nicht mehr, aber auch nicht weniger. =)
Oder um das Apache-HowTo zu zitieren:
Zitat:
The CGI (Common Gateway Interface) defines a way for a web server to interact with external content-generating programs, which are often referred to as CGI programs or CGI scripts. It is the simplest, and most common, way to put dynamic content on your web site.
Edit: PHP wird auch manchmal über das CGI genutzt. Genauso wie Perl, Ruby, Phyton...

LG,
Xong
  Mit Zitat antworten Zitat
Benutzerbild von hincapie
hincapie

Registriert seit: 24. Mär 2005
200 Beiträge
 
Delphi 5 Professional
 
#30

Re: Konzeptfrage - Internet-Chat als Freeware, wie?

  Alt 3. Mär 2008, 07:17
Also, ich habe das mit CGI am Wochenende mal etwas getestet.
Offensichtlich lässt mich mein Hoster nicht so ohne weiteres Binärdateien auf dem Server ausführen.
Daher scheidet diese Variante für mich leider aus...

Dafür läuft die PHP-Variante schon ziemlich gut...

Was mich noch interessieren würde:

Gibt es eine Möglichkeit, mit php eine Funktion auf dem Server einzubauen, mit der man z.b. regelmäßig überprüfen kann, ob ein bestimmter Zeitraum abgelaufen ist, ohne diese Funktion immer wieder manuell neu zu starten?
  Mit Zitat antworten Zitat
Antwort Antwort
Seite 3 von 4     123 4      


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 02:47 Uhr.
Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz