Delphi-PRAXiS
Seite 2 von 2     12   

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Netzwerke (https://www.delphipraxis.net/14-netzwerke/)
-   -   Delphi Remoting via Browser (https://www.delphipraxis.net/30528-remoting-via-browser.html)

XHelp 26. Sep 2004 12:41

Re: Remoting via Browser
 
Ich habe das gleiche schon gemacht. Nur mit TServerSocket.

Delphi-Quellcode:
unit main;

interface

uses
  Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
  Dialogs, StdCtrls, ScktComp;

type
  TMainForm = class(TForm)
    SS1: TServerSocket;
    Button1: TButton;
    Button2: TButton;
    procedure SS1ClientRead(Sender: TObject; Socket: TCustomWinSocket);
    procedure FormCreate(Sender: TObject);
    procedure FormClose(Sender: TObject; var Action: TCloseAction);
  private
    { Private declarations }
  public
    { Public declarations }
  end;

var
  MainForm: TMainForm;
  index:TStringList;

implementation

{$R *.dfm}

procedure TMainForm.SS1ClientRead(Sender: TObject;
  Socket: TCustomWinSocket);
var
sl:TStringList;
s:string;
i:integer;
begin
sl:=TStringList.Create;
sl.Text:=Socket.ReceiveText;
if sl[0]='GET / HTTP/1.1' then begin
  Socket.SendText(index.Text);
  Socket.Close;
end;
if sl[0]='POST / HTTP/1.1' then begin
  s:=sl[sl.Count-1];
  i:=pos('&go=',s);
  if i>0 then begin
    Delete(s,i,length(s)-i+1);
  end;
  if pos('text=',s)=1 then Delete(s,1,5);
  while pos('%0D%0A',s)>0 do begin
    i:=pos('%0D%0A',s);
    Delete(s,i,6);
    Insert(#13#10,s,i);
  end;
  Socket.SendText(s);
  Socket.Close;
end;

end;

procedure TMainForm.FormCreate(Sender: TObject);
begin
SS1.Port:=8989;
index:=TStringList.Create;
if FileExists(ExtractFileDir(Application.ExeName) + '\index.htm') then
  index.LoadFromFile(ExtractFileDir(Application.ExeName) + '\index.htm');
SS1.Active:=true;
end;

procedure TMainForm.FormClose(Sender: TObject; var Action: TCloseAction);
begin
SS1.Active:=false;
end;

end.
index.htm sieht so aus:
Code:
<html>

<head>
<title>REMOTE CONTROL</title>
</head>

<table table border="0" cellpadding="0" cellspacing="0" width="100%">
  <tr>
    <td width="100%">
      <p align="center">
      [b]<font size="4">REMOTE CONTROL


      </font>[/b]
      <FORM ACTION="" METHOD="post">
<TABLE BORDER="0" width="565">
<tr>
<TR>
<TD width="103">Message:</TD> <TD width="436"><textarea ROWS="6" COLS="53" NAME="text"></textarea></TD>
</TR>
</TABLE>
<INPUT TYPE="submit" NAME="go" VALUE="Send"> <input type="reset" value="Reset" name="res">
</FORM>
     

    </td>
  </tr>
</table>

</body>

</html>
Mach dem man das programm gestartet hat, kann man unter http://127.0.0.1:8989 die index.htm findet. Das beispiel wartet auf eingabe und dann gibt die eingabe zurück. Du kannst also deine seite machen und dann im server gucken, was ausgewählt und dann einfach das machen, was du willst =)

Ist es das was du gesucht hast?

Jörn 26. Sep 2004 20:42

Re: Remoting via Browser
 
Oder wenn man sowieso einen Webserver rennen lassen will, schreibt man eine ISAPI-dll welche in den Webserver (Apache, Sambar, IIS) eingebunden werden kann. Obwohl dafür der Arbeitsaufwand bei der Methode über meinem Post wohl geringer wäre, wenn auch nicht viel.

//EDIT: Schwachfug, viel zu kompliziert hier. Hätte das mal richtig lesen sollen.

Meflin 27. Sep 2004 15:29

Re: Remoting via Browser
 
oja dann bräcuhte der user ja noch nen zusätzlichen webserver ;-) ...
nur dass bei der delphi 7 pe auch kein tserversocket dabei ist, werde also wohl den indy http server verwenden ,üssen! kennt jemand ine gute beispiel app oder ein bruachbares tutorial dafür?

*MFG*

XHelp 27. Sep 2004 20:05

Re: Remoting via Browser
 
tserversockt muss dabei sein, vielleicht ist er einfach nicht installiert... aber sockets müssen dabei sein.


Alle Zeitangaben in WEZ +1. Es ist jetzt 07:06 Uhr.
Seite 2 von 2     12   

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