Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Netzwerke (https://www.delphipraxis.net/14-netzwerke/)
-   -   Delphi Indy 9 Chat Problem (https://www.delphipraxis.net/54397-indy-9-chat-problem.html)

Maximus 3. Okt 2005 18:51


Indy 9 Chat Problem
 
Hallo,

Ich möchte einen Netzwerkmodus für ein Spiel schreiben. Und zum testen der Komponenten hab ich mal ein Chat Testprogramm geschrieben.

Der Client kann zum Server Connecten und immer wenn man beim Client etwas schreibt erreicht es den Server.

Wie aber kann ich vom Server aus dem Client etwas schreiben? - Beim Server gibts kein IdTCPServer1.WriteLN und beim Client gibts kein OnExecute Ereignis.

Aus den Samples der Indy Komponenten werd ich auch nicht schlau.

Wie kann ich jetzt vom Server etwas dem Client senden (WriteLN) und der Client soll dann merken (OnExecute) ob der Server etwas geschrieben hat!

MFG
Maximus

SirThornberry 3. Okt 2005 18:55

Re: Indy 9 Chat Problem
 
beim Server gibt es kein Writeln weil ja mehrere Clients verbunden sein können. Schau mal ob es da sowas wie Server.Connection.Writeln gibt oder irgendwas anderes noch was dafür sorgt das man die verschiedenen client-connections ansprechen kann und von diesen aus müsste es dann irgendwo als untermethode auch writeln geben.

Maximus 3. Okt 2005 19:12

Re: Indy 9 Chat Problem
 
Ich hab mir jetzt mal die proceduren und funktionen angesehen aber keine gefunden mit der ich die einzelne Clients ansprechen kann.

Im Sample wurde es so gelöst:
Server Startet
Server Schreibt ein Text im OnExecute Ereignis
Client Connected, löst das OnExecute ereignis des Servers aus und liest den Text aus.
Server Disconnect

Ich möchte aber nur einmal eine Verbindung aufbauen und dann je nach Ereignis einen Text senden und diesen dann sofort auslesen. Mir scheint das geht von Server zu Client gar nicht.

MFG
Maximus

mr47 3. Okt 2005 19:17

Re: Indy 9 Chat Problem
 
Daran bin ich auch mal fast verzweifelt! Ich hab dann auf jedes Programm ein Server und ein Client gemacht....

mfg mr47

[edit1] Das ist natürlich quick'n'dirty aber funktioniert ^^ Ich denke es gibt aber eine Professionelle Alternative, ich kenn sie nur net ^^[/edit1]

Maximus 3. Okt 2005 19:23

Re: Indy 9 Chat Problem
 
Zitat:

Zitat von mr47
Ich denke es gibt aber eine Professionelle Alternative, ich kenn sie nur net

Und ganz genau die Suche ich.

Die andere Alternative wäre die Socket Komponenten von Borland, nur bei meiner D7 PE gibts die nicht, eventuell weiß einer wo man die herbekommt für D7.

SirThornberry 3. Okt 2005 19:29

Re: Indy 9 Chat Problem
 
die sind bei Delphi7 nur nicht auf der Palette. Du kannst sie auch zur laufzeit erzeugen (unit scktcomp). Und irgend ein package im Ordner "bin" ist das für die Sockets, weiß im Moment leider nicht welches (mal die suche nutzen)

Maximus 3. Okt 2005 19:48

Re: Indy 9 Chat Problem
 
Das Package ist ab Delphi 7 nicht mehr dabei, zumindest nicht bei der PE. Jedoch funktioniert es wenn ich die Sockets zu Laufzeit erstelle.

Damit müsst ich meine Probleme beheben können.

Thx SirThornberry und mr47

MFG
Maximus

SirThornberry 3. Okt 2005 19:51

Re: Indy 9 Chat Problem
 
wenn die unit dabei ist kannst du dir auch selbst ein package erstellen und die Sockets rein hängen.

Zacherl 3. Okt 2005 19:53

Re: Indy 9 Chat Problem
 
Den ReadLn Text des Clients erhält man an Besten über einen Timer. Auf jedem Programm einen CLient und einen Server ist überhaupt nicht im Sinne von TCP.

Einfach im OnTimer Event ReadLn abfragen.

Florian

SirThornberry 3. Okt 2005 19:56

Re: Indy 9 Chat Problem
 
mir ist wieder eingefallen wie ichs gemacht hab. Ich hab im OnConnectin mir den "AThread" (TIdPeerThread) der als Parameter übergeben wird in eine Liste gepackt und somit konnte ich später darauf zugreifen. Im OnDisconnect hab ich den natürlich wieder aus der Liste entfernt.
über IdTCPServer1.Threads kannst du eventuell auch darauf zugreifen.


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