Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Netzwerke (https://www.delphipraxis.net/14-netzwerke/)
-   -   Delphi Mit Indy-UDP Daten vom Server zum Client schicken (https://www.delphipraxis.net/41641-mit-indy-udp-daten-vom-server-zum-client-schicken.html)

Reddog 6. Mär 2005 12:06


Mit Indy-UDP Daten vom Server zum Client schicken
 
Hallo,

ich versuche ein kleines Pong-Spiel mi Multiplayer-Funktion zu proggen. Es hat zwar mit TCP geklappt, ich hab mich aber dann entschlossen auf UDP umzusteigen, da es offensichtlich besser geeignet ist. Dafür hab ich jetzt die Indy Komponenten verwendet, kenn' mich aber damit nicht aus. Meine Frage ist, wie kann ich Daten vom Server zum Client schicken? Der Client verschickt ja seine Daten ohne Probleme, die dann der Server in seinem OnUDPRead-Event empfängt. Aber, der Client hat ja nur sein OnStatus-Event.

PS: Ich hab schon die Suchfunktion der DP, sowie von Google bemüht, habe aber keine Antwort gefunden.

Also, ich danke für jede Hilfe.
Ciao, Reddog.

RJelinek 6. Mär 2005 12:55

Re: Mit Indy-UDP Daten vom Server zum Client schicken
 
Der einfachste Weg:

Verwende auf beiden Seiten die IdUdpServer-Komponente, denn mit dieser kannst du sowohl Senden, als auch Empfangen.

Reddog 6. Mär 2005 15:17

Re: Mit Indy-UDP Daten vom Server zum Client schicken
 
Daran hab ich auch gedacht. Ich frag mich aber, ob das wirklich so gedacht war? Wozu gibt's denn dann überhaupt einen Client?

Ein Problem ist, dass ich dann auf einem PC nicht zwei mal mein Prog laufen lassen kann. Das war zu Testzwecken schon ganz nett. Ich versuch's trotzdem mal so.

Danke für die Antwort.

RJelinek 6. Mär 2005 15:55

Re: Mit Indy-UDP Daten vom Server zum Client schicken
 
Soweit ich sehe, kann der IdUDPClient auch empfangen, allerdings gibt es kein Event dazu, sondern du musst die Receive-Routinen verwenden.

Reddog 6. Mär 2005 16:15

Re: Mit Indy-UDP Daten vom Server zum Client schicken
 
Genau das klappt bei mir nicht. Ich hab versucht mit einem Timer oder einer Schleife die Receive-Routine aufzurufen. Aber der client scheint bei mir so nix zu empfangen.

Also ich habe mich in den Abgrund des Indy-Quellcodes begeben und erfahren, dass das OnUDPRead-Event durch einen Listener-Thread realisiert wird. Dasselbe könnte ich wohl auch für einen Clienten übernehmen. Hmm, muss das mal ausprobieren. Fragt sich nur, warum es nicht schon implementiert war... Muss doch irgendeinen Grund haben.

Ich glaube, ich markier' die Frage, als beantwortet. Da scheint's ja doch keine direkte Lösung zu geben.

Danke RJelinek für die Denkanstöße :)


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