![]() |
Remoting via Browser
Moin zusammen,
ich habe vor, für mein programm (es beinhaltet zeitaufwändige berechnungen, sodass der user nicht immer vor dem pc sitzen wird wenn er es laufen hat) ein remote control feature einzubauen. also das programm soll kontrolliert werden können, nicht der pc :!: nur dass hier keine missverständnise aufkreuzen... nunja dieses feature möchte ich gerne so gestalten, dass man das prog über einen beliebigen webbrowser mit der ip des clients steuern kann. dazu bräcuhte ich jetzt mal ein paar denkanstösse. ich nehme an dazu muss ich einen eigenen http server schreiben? aber wie löse ich es mit dem dann, dass die ergebnisse von einer exe zurückgegben werden, nicht aus einem html dokument? *MFG* |
Re: Remoting via Browser
Nunja, das ist nicht sooo einfach.
1. Du musst einen Webserver in dein programm einbauen. 2. Bei Anfragen muss dein Programm eine ensprechende Webseite zurückliefern ... 3. Ich spreche nicht von existierenden Webseiten, die in einem Unterordener liegen, sondern von HTML-Quellcode, den den Programm ausgibt. (Und natürlich auch manipulieren kann) |
Re: Remoting via Browser
Hi,
wenn dir Delphi 7 Architect zur Verfügung steht, hört sich das nicht allzu schwer an. Schau dir z.b. mal die Intrawebkomponenten an. In der Entwicklungsversion haben die gleich einen einfachen Webserver eingebaut. Die nächste Variante wäre dann einen fertigen Webserver zu verwenden. Nur in seltenen Fällen wird es wirklich nötig sein, selber wieder einen Webserver zu entwickeln und den dann in deine Applikation hineinezukompilieren. Grüße Woki |
Re: Remoting via Browser
Zitat:
|
Re: Remoting via Browser
Zitat:
|
Re: Remoting via Browser
Zitat:
Ich nutze D7 Professional an der Uni, da sind diese Intraweb Komponenten aber auch dabei! |
Re: Remoting via Browser
Zitat:
|
Re: Remoting via Browser
wie auch immer, ich will ja mit der personal arbeiten, ergo steht mir kein pageproducer zur verfügung oder?
|
Re: Remoting via Browser
Zitat:
|
Re: Remoting via Browser
Hi,
noch einfacher wäre es, wenn du für die Ausgabe der Daten PHP-Scripte zurechtschusterst. Dein Programm schreibt seine Daten in irgendeine Textdatei, das Script gibt sie aus. Dann brauchst du zu deinem HTTP-Server nurnoch einen PHP-Parser :shock: Bis dann, S - tefano |
Re: Remoting via Browser
Ich habe das gleiche schon gemacht. Nur mit TServerSocket.
Delphi-Quellcode:
index.htm sieht so aus:
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.
Code:
Mach dem man das programm gestartet hat, kann man unter
<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> ![]() Ist es das was du gesucht hast? |
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. |
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* |
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 09:18 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