AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Programmierung allgemein Netzwerke Delphi Befehle an server senden...
Thema durchsuchen
Ansicht
Themen-Optionen

Befehle an server senden...

Ein Thema von the_seed · begonnen am 13. Jan 2004 · letzter Beitrag vom 14. Mär 2004
Antwort Antwort
Seite 1 von 2  1 2      
the_seed

Registriert seit: 31. Dez 2003
213 Beiträge
 
#1

Befehle an server senden...

  Alt 13. Jan 2004, 14:47
hi, kann mir jemand mal erklären wie ich befehle wie zb.
'showmessage('lol')' mithilfe eines idtcpclienten an den server schicken das die dann dort ausgeführt werden. Ich habe jetzt alles abgesucht aber nix gefunden, habe es mit 'writeln' probiert und am server dann mit "if" weiter verarbeitet aber ...
hoffentlich kann mir jemand weiterhelfen.
  Mit Zitat antworten Zitat
Benutzerbild von Phoenix
Phoenix
(Moderator)

Registriert seit: 25. Jun 2002
Ort: Hausach
7.639 Beiträge
 
#2

Re: Befehle an server senden...

  Alt 13. Jan 2004, 15:14
Poste mal ein wenig Code: was hast Du bisher?

Ein bisschen mehr Informationen können wir übrigens noch gebrauchen: Was willst Du genau bezwecken?
Sebastian Gingter
Phoenix - 不死鳥, Microsoft MVP, Rettungshundeführer
Über mich: Sebastian Gingter @ Thinktecture Mein Blog: https://gingter.org
  Mit Zitat antworten Zitat
the_seed

Registriert seit: 31. Dez 2003
213 Beiträge
 
#3

Re: Befehle an server senden...

  Alt 13. Jan 2004, 15:25
ich habe mithilfe indy einen idtcp server u. clienten erstellt, ich mithilfe des clienten indem ich zb. auf einen bttn klicke den rechner herunterfahren, nur weiss ich jetzt nicht was ich bzw. wie ich die befehle an den server senden kann das der sie ausführt...
  Mit Zitat antworten Zitat
Benutzerbild von Phoenix
Phoenix
(Moderator)

Registriert seit: 25. Jun 2002
Ort: Hausach
7.639 Beiträge
 
#4

Re: Befehle an server senden...

  Alt 13. Jan 2004, 15:43
Du musst die Befehle zum einen erstmal in der Server-Komponente implementieren,
das heisst das Serverprogramm muss alle Befehle die Du fernsteuern willst schonmal für sich selber können.

Der Client schickt dann am besten nur noch eindeutige Strings über das Netzwerk weg, und der Server entscheidet dann anhand des Strings, welche Methode er aufrufen muss:

Delphi-Quellcode:
procedure TServer.DoAction(action: string);
begin
   if action = 'shutdownthen
      doShutdown
   else if action = 'beepthen
      doBeep;
end;
Sebastian Gingter
Phoenix - 不死鳥, Microsoft MVP, Rettungshundeführer
Über mich: Sebastian Gingter @ Thinktecture Mein Blog: https://gingter.org
  Mit Zitat antworten Zitat
the_seed

Registriert seit: 31. Dez 2003
213 Beiträge
 
#5

Re: Befehle an server senden...

  Alt 13. Jan 2004, 17:03
Ich programmiere noch nicht sehr lange mit delphi, wie muss ich das dann angeben? kann ich das mit writeln ?
  Mit Zitat antworten Zitat
the_seed

Registriert seit: 31. Dez 2003
213 Beiträge
 
#6

Re: Befehle an server senden...

  Alt 13. Jan 2004, 18:39
mmmmhhh, ich hab wo gelesen das man da dann irgendwie strings senden kann!?! kann jemand ein kurzes und einfaches beispiel machen (das selbst ich es kapier) was ich im clienten und im server angeben muss das der server den befehl ausführt.
  Mit Zitat antworten Zitat
the_seed

Registriert seit: 31. Dez 2003
213 Beiträge
 
#7

Re: Befehle an server senden...

  Alt 14. Jan 2004, 14:20
Kann mir niemand helfen ? es ist seht wichtig für mich bitte macht jemand ein kurzes bsp.

@phoenix, ich glaube du kennst dich ein bisschen aus, kannst du es mir nicht kurz erklären?
  Mit Zitat antworten Zitat
Zortiander

Registriert seit: 29. Jan 2004
13 Beiträge
 
#8

Re: Befehle an server senden...

  Alt 29. Jan 2004, 17:25
Probiere es mit Indy-Komponenten, habe es gerad heute hinbekommen. Da kannst Du dann mit WriteLn usw. das abfangen. Im Prinzip funktioniert das so:

Client Code
Delphi-Quellcode:
...
{Hier willst Du dem Server ne Nachricht senden, Dein Indy TCP Client hat als Name CLient}
Client.WriteLn('shutdown')
...
Server Code
Delphi-Quellcode:
{Das geht in die OnExecute Routine rein}
...
command:= AThread.Connection.ReadLn;
{AThread wird in der Prozedur gleich übergeben, mit Connection greifst Du auf die Verbindung zu}
If command = 'shutdownthen
Begin
  Athread.Connection.Disconnect; {Den Client abhängen}
  doshutdown;
End;
Sollte so ungefähr funktionieren.
  Mit Zitat antworten Zitat
the_seed

Registriert seit: 31. Dez 2003
213 Beiträge
 
#9

Re: Befehle an server senden...

  Alt 30. Jan 2004, 14:06
Habs schon alleine hinbekommen trotzdem thx, weisst du wie man vom server aus strings sendet? das geht ja mit writln nicht!?
  Mit Zitat antworten Zitat
Zortiander

Registriert seit: 29. Jan 2004
13 Beiträge
 
#10

Re: Befehle an server senden...

  Alt 30. Jan 2004, 14:13
Das geht dann mit

Delphi-Quellcode:
{Hier ist die onExecute Routine des Servers}
...
AThread.Connection.WriteLn('message');
...
Beachte aber folgendes: Dein Client muss wissen, dass er was empfangen soll. Das sollte also ungefähr so im Client drin stehen:

Delphi-Quellcode:
{Wir sind im Client.}
...
Client.WriteLn('?001'); {Der Server verarbeitet das Ganze. Wir warten so lange}
{Ich benutze für die Kommunikation Zahlencodes, das geht ganz gut. In diesem Fall ist es ne Anfrage auf disconnect}
If Client.ReadLn = 'truethen Client.Disconnect;
...
Wenn der Server aber nix sendet, dann wartet der Client so lange im ich-bin-blockiert-Modus, bis Du ihm etwas sendest. Wenn Du ein Timeout einstellst, dann bekommt der User immernoch eine Fehlermeldung. Ich weis leider nicht, wie man die unterdrückt.
Es gibt auch WriteInteger und ähnliches, das siehst Du (zumindest unter Delphi 7) alles, wenn die automatische Vervollständigung des Codes zuschlägt, und Du aus der Liste alle Befehle suchen kannst.
  Mit Zitat antworten Zitat
Antwort Antwort
Seite 1 von 2  1 2      


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 17:43 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