Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Netzwerke (https://www.delphipraxis.net/14-netzwerke/)
-   -   Delphi Einfaches Command per Server/Client (https://www.delphipraxis.net/5006-einfaches-command-per-server-client.html)

RobertS 20. Mai 2003 12:44


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.

sakura 20. Mai 2003 13:27

Schau Dir mal das Proggie an, basiert auf den gleichen Komponenten.

http://www.delphipraxis.net/viewtopic.php?t=4440

...:cat:...

RobertS 20. Mai 2003 14:26

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

sakura 20. Mai 2003 14:42

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:...

RobertS 20. Mai 2003 15:01

Code:

Delphi-Quellcode:
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.
Wo zur Zeit noch "showmessage('Command1')" steht soll eben dann die "Antwort" hin.

Danke für Anregungen
mfg
Robert

sakura 20. Mai 2003 15:13

Wenn ich mich jetzt nicht irre, dann sollte es so gehen:
Delphi-Quellcode:
procedure TForm1.IdTCPServer1TIdCommandHandler0Command(
  ASender: TIdCommand);
begin
  ASender.Connection.WriteLn('Ätsch, angekommen');
end;
Wenn nicht, lass es mich wissen, dann starte ich Delphi :mrgreen:

...:cat:...

RobertS 20. Mai 2003 15:24

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;

sakura 20. Mai 2003 15:25

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