Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Netzwerke (https://www.delphipraxis.net/14-netzwerke/)
-   -   Delphi per idTCP Befehle an Server senden (https://www.delphipraxis.net/16915-per-idtcp-befehle-server-senden.html)

Neuni 25. Feb 2004 16:50


per idTCP Befehle an Server senden
 
Hi,
ich weiß, dass das bestimmt schon oft kam, aber aus den Antworten anderer Themen und den Tutorials, wurde ich einfach nicht Schlau. :(

Ich möchte zwei Programme schreiben, einen Server und einen Client, die über IdTCP verbunden werden. Wenn ich beim Client auf einen Button klicke, soll der eine nachricht an den Server schicken, der dann anhand der Nachricht erkennt, was er machen soll und dann einen Befehl ausführt.
Also beim Server sollte das dann irgendwie so aussehen:

if NachrichtDieAnkommt = 'Hallo' then
showmessage ('Guten Tag');

Der Server soll also wenn er eine Nachricht vom Client erhält einen vordefinierten Befehl ausführen (Hier soll er also die Nachricht 'Guten Tag' anzeigen, wenn er vom Client den Befehl 'Hallo' bekommt).

Meine Fragen sind nun: :gruebel:

1. Wie stelle ich eine Verbindung zwischen IdTCPClient und IdTCPServer her?

2. Wie schicke ich eine Nachricht an den Server?

3. Was muss ich tun, damit der Server showmessage ('Guten Tag') ausführt wenn ich ihm den Befehl 'Hallo' sende?


Verzeit mir bitte wenn ich ein paar blöde Fragen stelle oder so, aber ich programmiere noch nicht sehr lange.

Wär nett wenn ihr mir schnell helfen könntet,
Neuni

jackie 25. Feb 2004 19:13

Re: per idTCP Befehle an Server senden
 
Hi Neuni!

Also erst mal herzlich willkommen in der Delphi-PRAXiS :dp:

Normalerweise solltest du für jede Frage einen Thread aufmachen, aber ich bin mal nicht so:
Die erste Frage kann ich mal beantworten:

Du brauchst ein Server Programm mit IdTCPServer, dass auf einem bestimmten Port 'lauscht' (einstellbar im OI unter DefaultPort (und nicht vergessen, auf Active = True zu stellen)). Dann kannst du dich mit dem Client (IdTCPClient) gannz leicht verbinden:
Delphi-Quellcode:
IdTCPClient.Connect
Vorher aber im OI noch Host und Port angeben!

[edit]zu 2.) Du kannst vom Client aus folgendermaßen eine Nachricht schicken:
Delphi-Quellcode:
IdTCPClient.Write('Hello World!');
oder
IdTCPClient.WriteLn('Hello World!');
[/edit]

Neuni 25. Feb 2004 19:22

Re: per idTCP Befehle an Server senden
 
Danke,
das mit dem Thread wusste ich nicht, sorry.

Also das mit der connection hab ich nun gerafft :-D und dem schreiben,
aber wie sach ich nu dem server was er machen soll, wenn er den befehl erhält?

Nochmal Danke

neuni

Neuni 25. Feb 2004 19:32

Re: per idTCP Befehle an Server senden
 
Oh, mein Quellcode sieht nun so aus:

Delphi-Quellcode:
unit Unit1;

interface

uses
  Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
  Dialogs, IdBaseComponent, IdComponent, IdTCPConnection, IdTCPClient,
  StdCtrls;

type
  TForm1 = class(TForm)
    IdTCPClient1: TIdTCPClient;
    Button1: TButton;
    procedure Button1Click(Sender: TObject);
  private
    { Private-Deklarationen }
  public
    { Public-Deklarationen }
  end;

var
  Form1: TForm1;

implementation

{$R *.dfm}

procedure TForm1.Button1Click(Sender: TObject);
begin
IdTCPClient.Write('Hello World!');
end;

end.
Aber wenn ich die Anwendung nun starten will steht da:
[Fehler]unit1.pas(30): Undefinierter Bezeichner: 'Write

Was heißt das??? Wo ist der fehler? :gruebel:

Neuni

---
[edit]

Fehler hat sich behoben, Grund: Mein Client heißt IdTCPClient1 und ich hatte IdTCPClient geschrieben :oops:

Bleibt die Frage, wie sachich dem server was er machen soll wenn er die nachrcht bekommt?
[/edit]

Neuni 25. Feb 2004 19:46

Re: per idTCP Befehle an Server senden
 
Ok..funktioniert alles, bleiben die Fragen:

1. Muss ich beimm server auch IdTCPServer1.connect hinschreiben, oder geht das von alleine?

2. (Wie ober schon) Wie ist der Befehl für den Server, dass er nen befehl ausführt?


Danke für jede Antwort,
Neuni :dance:

jackie 26. Feb 2004 06:15

Re: per idTCP Befehle an Server senden
 
Hi Neuni!
1. Also beim Server musst du glaub ich nicht connecten, sondern nur auf Active := True stellen.
2. Ich werde heute Nachmittag mal nachschauen (kann jetzt nicht - Schule)

jackie 26. Feb 2004 12:41

Re: per idTCP Befehle an Server senden
 
Also: zu 2.) Ich habe es noch nicht herausgefunden. Aber du könntest mal im Ordner Demos\Indy\Chat deiner Delphi Installation nachschauen, da ist ein Chat, bei dem es das Feature gibt, Smiles zu ersetzen. du musst einfach schauen, wie du das umformen kannst, sodass er eine Meldung ausgibt.

Neuni 26. Feb 2004 16:56

Re: per idTCP Befehle an Server senden
 
Danke!
In dem Ordner hab ich schon geguckt, aber aus den Codes wurde ich auch nich schlauer...

also wenn jemand weiß was man machen musss, damit der server je nach nachricht nen befehl ausführt bitte schreiben.

Neuni :dance:

Chris1986 26. Feb 2004 17:49

Re: per idTCP Befehle an Server senden
 
Es gibt zum auslesen des Servers 2Möglichkeiten:
1.) Mit einem Timer. (Wie im ersten Beispiel der Indy-Kompos)
2.) Besser und edler weil es nicht abstürzt beim Bewegen der Form: Arbeite mit Threads. Auf der Indy-HP gibts ein Beispiel

MfG
Christian


Alle Zeitangaben in WEZ +1. Es ist jetzt 18:40 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