Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Netzwerke (https://www.delphipraxis.net/14-netzwerke/)
-   -   Delphi Indy9: Wie TCP Server/Client Komponenten richtig verwenden? (https://www.delphipraxis.net/66285-indy9-wie-tcp-server-client-komponenten-richtig-verwenden.html)

-lx- 27. Mär 2006 21:50


Indy9: Wie TCP Server/Client Komponenten richtig verwenden?
 
Hallo.

Vll. errinnert sich einer an meine vergangenen Threads zu dem Thema.

Nunja, wie schon gesagt möchte ich vorerst nur eien 1:1 Chattprogramm basteln.
Was ich bereits geschafft habe: Der Client kann an den Server eine Anfrage schicken, worauf der Client eine vorgefertigte Antwort zurückgeschickt bekommt.

Das war leider auch schon alles. Nun stehe ich vor dem Problem: Wie kann ich mit Hilfe der Serverkomponente Texte verschicken, die eig. garnicht vom Client erwartet werden?
Wie kann ich überhaupt per Knopdfruck die Serverfunktion starten lassen? Also dass er eine Nachricht rausschickt?

Ich komm da beim Betsne willen nicht weiter. Mir ist klar, dass beide Chattteilnehmer sowohl ein Client als auch ein Server sind.

Mit dem Client kann man nur empfangen und mit dem Server nur sendne. Aber wie ?? also cih hoffe ihr versteht mein Problem. Gesucht habe ich auch schon . Google, hier im Board... aber nichts gefundne, was mir meine Frage hätte beantworten können.



Wäre auch über eine Erläuterung der eig. Eigenschaften und Funktionen der Client und Serve rKomponente sehr dankbar. Ich glaube dass was ich bereits über die beiden Komponenten weis, ist noch nicht der volle Leistungsumfang. :wiejetzt:




Mit freundlichen Grüßen

-lx-

supermuckl 27. Mär 2006 21:58

Re: Indy9: Wie TCP Server/Client Komponenten richtig verwend
 
hi
also sorry aber im board gibts echt viele threads zu genau deinem problem!
in mindestens 70% davon hab ich geantwortet, da es immer wieder solche wie dich gibt, die nicht wissen das ein client senden und empfangen kann und auch ein server beides kann!

wie das geht, ist in den indy demos zu sehen (auf der indy webseite zum downloaden)
ich kann immer wieder nur zu den demos verweisen, da es dort GENAU aus dem code ersichtlich ist, wie man das so macht.

ansonsten wenn alle stricke reißen, kann ich mal ein tutorial schreiben und es hier posten.

-lx- 28. Mär 2006 22:30

Re: Indy9: Wie TCP Server/Client Komponenten richtig verwend
 
Hallo.

Die Indy Demos habe ich mir bereits bezüglich der Themen schon angeschaut. Ich habe auch gesehen, dass man laut der Demos mit Clients und Server was senden/empfangen kann, nur mir ist eben noch nicht klar, welche Ereignisse ich verwenden muss. Teilweise wird in den Demos "MSG" oder so ehnlich verwendet, anderersiets wiederum TCPServer und TCP Client. Ich werf da glaub ich einiges durcheinander und mir fehlt da irgendwie der rote Faden.
Das verwirrt mich, d aich nicht weis, worauf ich mich nun konzentrieren soll.

Ich habe das Board bereits durchsucht, nur warscheinlich hab eich di efalschen Begriffe verwendet.

Wenn du mir eien Stichpunkt sagst, wäre ich dir sehr verbunden.



Mit freundlichen Grüßen

-lx-

-lx- 2. Apr 2006 19:37

Re: Indy9: Wie TCP Server/Client Komponenten richtig verwend
 
Nun gut ich fang mal klein an.

Was genau macht denn die Funktion oder der Befehl "ReadLn" bzw. "WriteLn" ?

Hab des auch schon in Verbindung ohne Netzwerkfunktionen gesehen.



mfg
Cya

DataCool 4. Apr 2006 14:22

Re: Indy9: Wie TCP Server/Client Komponenten richtig verwend
 
Hi,

obwohl ich supermuckl Recht geben muss(Hatten wir schon soooooooo oft) !

Hier mal ein paar Gedanken Ansätze die Dich weiter bringen sollten :

Situation mehrere Clients unterhalten sich über einen Server miteinander !!!

- Client verwendet TIdTcpClient und Server TIdTCPServer

- Client verbindet sich zum Server und liesst(Readln) dann mittels eines Threads alle xyz Millisek, ob Daten vom Server gekommen sind. Wenn Daten vom Server gekommen sind, must Du diese dann entsprechend verarbeiten.

- Im TIdTCPServer, verwendest Du das Ereigniss OnExecute, liesst dort auch mittels(ReadLN) aus der connection, ob vom Client was gekommen ist und reagierst gegebenfalls auf die Anfrage die Clients mit einer Antwort(WriteLN).

- Willst Du jetzt vom Server aus an einen oder an alle Clients eine Nachricht an die Clients schicken, musst Du nur alle Connections des Servers durchgehen und Deine Nachricht mittels(WriteLN) in die Connection schreiben.


Hoffe das hilft Dir weiter, aber das ganze ist auch nicht ohne ;-)

Gruß Data


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