TCP-Server als Web-Server (Datein senden)
Hi Leute,
ich habe mir einen TCP-Server (TTcpServer) zum Web-Server programmiert. Funktioniert alles super. Hier das Tutorial. Nun habe ich folgende Fragen: 1. Wie kann ich ein Bild hochladen? Bei mir kam irgendwie kein Bild an :( 2. Wie kann ich Datein hochladen, die gedownloaded werden können? Bei mir kam nur eine kleine Datei zum download, welche irgendwie keine Inhalte hatte :( . 3. Kann man irgendwie die URL ändern (http://localhost:7777/ zu http://Name/ oder sogar http://Name.de). Falls ihr den Code haben wollt:
Delphi-Quellcode:
unit Unit1;
interface uses Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, Dialogs, StdCtrls, XPMan, Sockets; type TForm1 = class(TForm) GroupBox1: TGroupBox; Memo1: TMemo; XPManifest1: TXPManifest; Button1: TButton; Button2: TButton; Button3: TButton; TcpServer1: TTcpServer; Button7: TButton; procedure Button3Click(Sender: TObject); procedure Button1Click(Sender: TObject); procedure Button2Click(Sender: TObject); procedure TcpServer1Accept(Sender: TObject; ClientSocket: TCustomIpClient); procedure Button7Click(Sender: TObject); private { Private-Deklarationen } public { Public-Deklarationen } end; var Form1: TForm1; implementation {$R *.dfm} procedure TForm1.Button3Click(Sender: TObject); begin Button2.Click; application.Terminate; end; procedure TForm1.Button1Click(Sender: TObject); begin TCPServer1.Open; Memo1.Lines.Add('Server gestartet'); end; procedure TForm1.Button2Click(Sender: TObject); begin TCPServer1.Close; Memo1.Lines.Add('Server gestoppt'); end; procedure TForm1.TcpServer1Accept(Sender: TObject; ClientSocket: TCustomIpClient); var Line:String; i:Integer; path:String; Httppos:Integer; begin Line:=' '; while ClientSocket.Connected and (Line<>'') do begin Line:=ClientSocket.Receiveln(); Memo1.Lines.Add(Line); if copy(Line,1,3)= 'GET' then begin Httppos:= Pos('HTTP',Line); Path:=Copy(Line,5,HTTPPos-6); Memo1.Lines.Add('Path: ' + Path); end; end; If Path='/' then Path:='Seiten/index.html'; If Fileexists('htdocs/' + Path) then with TStringList.Create do begin Loadfromfile('htdocs/' + path); ClientSocket.Sendln('HTTP:/1.0 200 OK'); ClientSocket.Sendln(''); ClientSOcket.Sendln(Text); ClientSOcket.Close; Free; exit; end; ClientSocket.Sendln('HTTP:/1.0 404 Not Found'); ClientSocket.Sendln(''); ClientSOcket.Sendln('<h1>Nicht gefunden</h1> Path: ' + Path); ClientSocket.Close; end; procedure TForm1.Button7Click(Sender: TObject); begin Memo1.Clear; Memo1.Lines.Add('---LOG---'); end; end. Vielen Dank schonmal für's lesen :-D |
Re: TCP-Server als Web-Server (Datein senden)
Ähm du, wäre es nicht einfacher und gleichzeitig sinnvoller, wenn du statt einem TCPServer auf einen IdHTTPServer wechselst? Der sorgt nämlich nicht nur für die ankommenden Daten, sondern auch für die ausgehenden Daten.
Bernhard |
Re: TCP-Server als Web-Server (Datein senden)
Kannst du mir ein gutes Tutorial nennnen?
Giebt es auch eine Komponente, die über das Internet geht? Und nicht nur lokal ist? |
Re: TCP-Server als Web-Server (Datein senden)
Was genau willst du machen?
|
Re: TCP-Server als Web-Server (Datein senden)
Eine art Homepage.
Das habe ich schon mit dem TCP-Server gemacht, nur ich konnte keine Daten hochladen. Das brauche ich aber, denn jede gute Seite hat Bilder. Entweder ich nehme Bilder von anderen Seiten, dass darf man aber nicht immer. Oder ich lade meine eigenen hoch (perfekt). Ausserdem wär eine Funktion Download nicht schlecht. Am bessten wär es, wenn der Server übers Internet läuft. |
Re: TCP-Server als Web-Server (Datein senden)
Wieso verwendest du nicht einfach einen normalen Webserver (z.B. Apache)?
|
Re: TCP-Server als Web-Server (Datein senden)
Ich will das selber machen.
Ich bin auch zufrieden, wenn der Server lokal ist. Ich will nur mal ein guten Webserver machen. |
Re: TCP-Server als Web-Server (Datein senden)
Bei den Indy9-Demos ( http://www.indyproject.org/sockets/demos/index.en.aspx ) ist ein funktionierender Webserver dabei. Diesen kannst du als Lernobjekt inkl. Tutorial ansehen.
Bernhard PS: Ich habe die Indy10 noch nicht getestet. |
Re: TCP-Server als Web-Server (Datein senden)
!!!Vielen Dank Rollstuhlfahrer (xD)!!! :thumb:
Ich bin dabei, die Demo zu studieren. Wenn mir noch fragen bleiben, werde ich sie hier bald reinschreiben. Nur noch die Frage, ob man die URL ändern kann. Aber schonmal vielen Dank :thumb: |
Re: TCP-Server als Web-Server (Datein senden)
Zitat:
Soll der Server "weltweit" erreichbar sein, dann wirst du z.B. einen Service wie DynIP ( www.dynip.com ) nutzen müssen, um deine IP mit einer Domain/URL zu verknüpfen oder soll das nur lokal auf deinem PC so sein? |
Alle Zeitangaben in WEZ +1. Es ist jetzt 09:27 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