![]() |
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 |
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:
Vorher aber im OI noch Host und Port angeben!
IdTCPClient.Connect
[edit]zu 2.) Du kannst vom Client aus folgendermaßen eine Nachricht schicken:
Delphi-Quellcode:
[/edit]
IdTCPClient.Write('Hello World!');
oder IdTCPClient.WriteLn('Hello World!'); |
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 |
Re: per idTCP Befehle an Server senden
Oh, mein Quellcode sieht nun so aus:
Delphi-Quellcode:
Aber wenn ich die Anwendung nun starten will steht da:
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. [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] |
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: |
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) |
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.
|
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: |
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 01:35 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