Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Netzwerke (https://www.delphipraxis.net/14-netzwerke/)
-   -   Delphi tcpserver problem (https://www.delphipraxis.net/31051-tcpserver-problem.html)

G G 3. Okt 2004 14:43


tcpserver problem
 
hi leute, also was ich eigentlcih vor hatte war einen tcpclient mit einem tcpserver zu verbinden. das geht auch gut. Nur dann will ich auf dem Server einen button drücken der an den client einbefehl sendet.

Nun ist das Problem aber folgendes dass man normal des so macht

athread.Connection.writeln(edit1.text);

aber dies kann ich nur machen wenn die prozedure "onExecute" oder ähnliches ausgelöst wird.

Aber weil ich einen button drück geht das nicht, weil der dann nie weiß an welche verbindung er eigentlcih schicken soll.

Nun hab ich mir gedacht sende doch einfach an alle verbindungen, weils eh immer nur eine sein wird.

Aber sowas wie idtcpserver.connection[all].writeln(edit1.text) gibts leider nicht.

Weiß jemand wie ich des trotzdem hinbekomm?

vielen dank :thumb:

Dax 3. Okt 2004 14:50

Re: tcpserver problem
 
Schau dir mal die Chat-Demos von Indy an, da steht der Code, den du suchst.

G G 3. Okt 2004 14:55

Re: tcpserver problem
 
ja des tu ich schon die letzte 15 min, aber der chat ist so umfangreich, dass ich des einfach nicht finde. Wenns jemand ohne großen aufwand mir sagen könnte, wär des echt super, vielen dank :thumb:

jfheins 3. Okt 2004 15:10

Re: tcpserver problem
 
:arrow: Beim Server.OnConnect den Thread in einer Variablen speichern
:arrow: OnButtonClick Variable.connection....

G G 3. Okt 2004 15:20

Re: tcpserver problem
 
okay, des hab ich vorhin schonmal probiert, aber habs jetzt nochmal veruscht. Das server fenster bleibt hängen, aber es kommt nie eine nachricht beim client an?

woran könnt des liegen

der code ist folgender :

server:

Delphi-Quellcode:
unit Unit1;

interface

uses
  Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
  Dialogs, StdCtrls, IdBaseComponent, IdComponent, IdTCPServer, ExtCtrls,
  IdAntiFreezeBase, IdAntiFreeze;

type
  TForm1 = class(TForm)
    IdTCPServer1: TIdTCPServer;
    Label1: TLabel;
    Button1: TButton;
    Edit1: TEdit;
    IdAntiFreeze1: TIdAntiFreeze;
    procedure IdTCPServer1Connect(AThread: TIdPeerThread);



 
    procedure Button1Click(Sender: TObject);
    procedure IdTCPServer1Execute(AThread: TIdPeerThread);

  private
    { Private-Deklarationen }
  public
    { Public-Deklarationen }
  end;

var
  Form1: TForm1;
   person : tidpeerThread;

implementation

{$R *.dfm}

procedure TForm1.IdTCPServer1Connect(AThread: TIdPeerThread);
begin
label1.Caption := 'online';
    person := AThread;

end;



procedure TForm1.Button1Click(Sender: TObject);
      begin
      form1.IdTCPServer1Execute(person);
   end;


procedure TForm1.IdTCPServer1Execute(AThread: TIdPeerThread);
begin
Athread.Connection.WriteLn(edit1.Text);

end;

end.
vielen dank


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