![]() |
Einfaches Command per Server/Client
Hallo!
Also ich habe einfach mal 2 kleine Programme gemacht.. 1 mit idTCPSERVER und das andere mit idTCPCLIENT. Der Server wartet auf Port 827, wenn der Client sich verbunden hat, kann dieser 2 Commands schicken, per SendCmd. Auf der Serverseite kann ich auch auf den Command reagieren, auch ein sg. Reply kann ich angeben doch dieser kommt beim Client nicht an.. :x Der Server hat ja auch keine Art SendText oder ähnliches, hat jemand damit schonmal Erfahrungen gemacht? Ich danke euch schonmal. |
Schau Dir mal das Proggie an, basiert auf den gleichen Komponenten.
![]() ...:cat:... |
Also danke schonmal an dich!
Ich bin da ja mal durchgestiegen und so richtig den Durchblick hab ich aber nicht! :| :| Der Event "OnExecute" vom Server wird bei mir gar nicht aufgerufen....weder noch bei SendCMD oder bei WriteLn Alles was ich möchte ist ja nur das der Server eine Antwort gibt, ob der Command erfolgreich war. Bin erst seid einiger Zeit an Delphi dran, wegen der Firma, also entschuldigt bitte wenn ich ich so anfängerhafte Fragen stelle. So danke im voraus mfg Robert |
Poste mal den Code vom Client und vom Server und wie weit der bereits funktioniert. Mal schauen, wie ich dann weiterhelfen kann. Ist wahrscheinlich der sinnvollste Ansatz.
...:cat:... |
Code:
Delphi-Quellcode:
Wo zur Zeit noch "showmessage('Command1')" steht soll eben dann die "Antwort" hin.
unit Unit1;
interface uses Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, Dialogs, Buttons, glSpeedButton, IdTCPConnection, IdTCPClient, IdBaseComponent, IdComponent, IdTCPServer, StdCtrls; type TForm1 = class(TForm) IdTCPServer1: TIdTCPServer; IdTCPClient1: TIdTCPClient; glSpeedButton1: TglSpeedButton; glSpeedButton2: TglSpeedButton; servermemo: TMemo; clientmemo: TMemo; Button1: TButton; Button2: TButton; procedure glSpeedButton1Click(Sender: TObject); procedure FormClose(Sender: TObject; var Action: TCloseAction); procedure glSpeedButton2Click(Sender: TObject); procedure IdTCPServer1Connect(AThread: TIdPeerThread); procedure Button1Click(Sender: TObject); procedure Button2Click(Sender: TObject); procedure IdTCPServer1TIdCommandHandler1Command(ASender: TIdCommand); procedure IdTCPServer1TIdCommandHandler0Command(ASender: TIdCommand); private { Private-Deklarationen } public { Public-Deklarationen } end; var Form1: TForm1; implementation {$R *.dfm} procedure TForm1.glSpeedButton1Click(Sender: TObject); begin IdTCPServer1.Active:=True; Form1.Caption:='Server'; servermemo.Visible:=True; end; procedure TForm1.glSpeedButton2Click(Sender: TObject); begin glSpeedButton2.Enabled:=False; IdTCPClient1.Connect(); Form1.Caption:='Client'; clientmemo.Visible:=True; Button1.Visible:=True; Button2.Visible:=True; end; procedure TForm1.FormClose(Sender: TObject; var Action: TCloseAction); begin if IdTCPServer1.Active then IdTCPServer1.Active:=False; if IdTCPClient1.Connected then IdTCPClient1.Disconnect; end; procedure TForm1.IdTCPServer1Connect(AThread: TIdPeerThread); begin servermemo.Lines.Add('Client verbunden'); end; procedure TForm1.Button1Click(Sender: TObject); begin IdTCPClient1.SendCmd('test'); end; procedure TForm1.Button2Click(Sender: TObject); begin IdTCPClient1.WriteLn('test'); end; procedure TForm1.IdTCPServer1TIdCommandHandler0Command( ASender: TIdCommand); begin showmessage('Command2'); end; procedure TForm1.IdTCPServer1TIdCommandHandler1Command( ASender: TIdCommand); begin showmessage('Command1'); end; end. Danke für Anregungen mfg Robert |
Wenn ich mich jetzt nicht irre, dann sollte es so gehen:
Delphi-Quellcode:
Wenn nicht, lass es mich wissen, dann starte ich Delphi :mrgreen:
procedure TForm1.IdTCPServer1TIdCommandHandler0Command(
ASender: TIdCommand); begin ASender.Connection.WriteLn('Ätsch, angekommen'); end; ...:cat:... |
Ich muss dich anscheinend doch dazu verdonnern Delphi zu starten :)
geht nicht habe es auch so probiert:
Delphi-Quellcode:
procedure TForm1.IdTCPServer1TIdCommandHandler0Command(
ASender: TIdCommand); begin ASender.SendReply; Asender.Response.Text:='dlkfjdkf'; end; |
vertausche mal die beiden Zeilen...
...:cat:... |
Alle Zeitangaben in WEZ +1. Es ist jetzt 03:44 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