Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Netzwerke (https://www.delphipraxis.net/14-netzwerke/)
-   -   Delphi String vom IdTCPServer zum IdTCPClient schicken!? (https://www.delphipraxis.net/56683-string-vom-idtcpserver-zum-idtcpclient-schicken.html)

dadu 9. Nov 2005 18:36


String vom IdTCPServer zum IdTCPClient schicken!?
 
HI Leute,
ich verzweifel etwas...

Ich versuche mit einem idTCPServer einen Text (später mal Daten) an einen idTCPClient zu senden und zwar nicht in der "onexecute" Methode des Servers sondern beim Klick auf einen Button!

Andersrum ist das ja leicht:

Delphi-Quellcode:
procedure TForm1.Button1Click(Sender: TObject);
begin
IdTCPClient1.Socket.WriteLn('Hallo');
end;
Nur hat der TCPServer außerhalb der execute (oder anderen Methoden) kein
Delphi-Quellcode:
AContext: TIdContext
um irgendwelche "write" Methoden aufzurufen.

Das muss aber doch gehen, das man auf Knopfdruck eine Nachricht vom Server zum Client sendet!?

Hoffe ihr könnt mir helfen!
Danke!

Zacherl 9. Nov 2005 18:43

Re: String vom IdTCPServer zum IdTCPClient schicken!?
 
Versuch mit einem Timer den ReceiveText des Clients abzurufen. Wenn der string nicht '' ist darauf reagieren.

Florian

dadu 9. Nov 2005 18:48

Re: String vom IdTCPServer zum IdTCPClient schicken!?
 
Sorry Florian, aber ich versteh nicht was du meinst. Ich will ja eben auf NIX reagieren...sonder warten bis einer beim Serverprogramm auf einen Button klickt.

//NACHTRAG: Hab übrigens Indy 10

supermuckl 9. Nov 2005 19:27

Re: String vom IdTCPServer zum IdTCPClient schicken!?
 
warte mit einem thread in einer endlosschleife mit readln auf ankommende daten beim client.

beispiele usw gibts in duzend anderen threads in der DP, wo mindestens ich auch geantwortet habe

dadu 9. Nov 2005 19:48

Re: String vom IdTCPServer zum IdTCPClient schicken!?
 
HI supermuckl, du hast mich falsch verstanden, mein Problem ist nicht die ankommenden Daten beim Client auszulesen, da kommen ja überhaupt keine an, da ich nicht weiß wie der Server die an den Client schicken kann^^

Mir scheint das immer mehr, dass das nicht geht und man dsa Problem nur durch 2 Verbindungen also jedes Programm bekommt Client+Server lösen kann... den der Datentransfer von Client -> Server ist ja einfach.

So wie ich das verstehe kann der Server nur auf eingehende Daten von einem Client reagieren und nicht selbst etwas initiieren. Wäre dankbar wenn das einer klären könnte.

Zacherl 10. Nov 2005 12:58

Re: String vom IdTCPServer zum IdTCPClient schicken!?
 
Irgendwas in der Art:
IdTCPServer1.Context.Connections[0].Socket.SendText('blablabla');

oder das Context weglassen. Bin mir nicht mehr sicher.

Florian

dadu 10. Nov 2005 16:06

Re: String vom IdTCPServer zum IdTCPClient schicken!?
 
Das mit dem context (um genau zu sein Acontext) gibts nur innerhalb der execute und anderen Ereignissen. Global kann man so wie es aussieht nichts dadran machen :|

Dj_Base 10. Nov 2005 20:46

Re: String vom IdTCPServer zum IdTCPClient schicken!?
 
Hi! :hi:

Falls du dich schon an das Versenden von (größeren) Datenpaketen machen willst, könnten dir diese Tutorials vieleicht helfen:
http://www.delphipraxis.net/internal...ct.php?t=61806
http://www.delphipraxis.net/internal...ct.php?t=10179

Ich hoffe, dass ich dir helfen konnte,
Viele Grüße,

Dj_Base

supermuckl 11. Nov 2005 08:02

Re: String vom IdTCPServer zum IdTCPClient schicken!?
 
es geht ganz einfach mit dem server zum client zu senden.
auch dieses kann man in der indy demo sehen. einfach diese runterladen.

im prinzip muss man nur seine client connections im server verwalten (speichern)

und später kannst diese durchgehen und an die threads wieder was senden
oder einfach im OnExecute ereignis im server (falls was vom client zuerst gesendet wird) dann darauf reagieren und zum client was zurück senden, weil du in dieser procedure schon AThread hast, was die verbindung zum client schon wäre.

Athread.connection.readln / writeln usw


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