Thema: Delphi Remoting via Browser

Einzelnen Beitrag anzeigen

Benutzerbild von XHelp
XHelp

Registriert seit: 12. Jul 2004
Ort: Duisburg
172 Beiträge
 
Delphi 6 Enterprise
 
#11

Re: Remoting via Browser

  Alt 26. Sep 2004, 13:41
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.1then begin
  Socket.SendText(index.Text);
  Socket.Close;
end;
if sl[0]='POST / HTTP/1.1then 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?
Alex
Von allen Dingen die mir verloren gegangen,
hab ich am meisten an meinem Verstand gehangen
  Mit Zitat antworten Zitat