Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Netzwerke (https://www.delphipraxis.net/14-netzwerke/)
-   -   Delphi Server/Client - Daten nicht an Sender, nur an andere Clients (https://www.delphipraxis.net/125960-server-client-daten-nicht-sender-nur-andere-clients.html)

fui-tak 15. Dez 2008 18:12


Server/Client - Daten nicht an Sender, nur an andere Clients
 
Hallo,
Ich habe mein Chat-Programm, welches ich in meiner letzten Frage ansatzweise erklärt habe etwas weiterentwickelt.
Das ganze funktioniert mit dem Componenten TServerSocket und TClientSocket. Es gibt ein Server- und mehrere gleiche Clientprogramme. Ich möchte mein Image1 über den Bildschirm bewegen und die Position an das Serverprogramm schicken. Das alles funktioniert auch soweit. Ziel ist es ein Image2 in den anderen Clients auf die aktuelle Position von Image1 (in Client 1) zu bewegen.

Dafür soll der Server diese Daten an alle Clients schicken, außer an den, von dem die Daten ursprünglich kommen.

Wie funktioniert das?

Valle 15. Dez 2008 21:20

Re: Server/Client - Daten nicht an Sender, nur an andere Cli
 
Einfach an alle Clients schicken, außerdem eben dem, der den Befehl gesendet hat. Ich hoffe folgendes stimmt so. Kompillieren tut es, aber ob es funktioniert weiß ich nicht. Wenn mich mein TCP-Verständnis nicht täuscht, sollte es aber. (TCP-Verständnis: Ein Client ist eindeutig über seinen Port und seine IP zu identifizieren!?)

Delphi-Quellcode:
procedure TForm1.OnClientWrite(Sender: TObject; Socket: TCustomWinSocket);
var i: Integer;
begin
  for i := 0 to Server.Socket.ActiveConnections-1 do
  begin
    if (Socket.RemotePort <> Server.Socket.Connections[i].RemotePort) or
       (Socket.RemoteHost <> Server.Socket.Connections[i].RemoteHost) then
      Server.Socket.Connections[i].SendText('Bla.');
    // else
    //   Dieser Client hat gesendet
  end;
end;
Edit:// and durch or ersetzt. Kleiner logischer Fehler, schließlich müssen ja nicht beide Werte unterschiedlich sein, sondern mindestens einer. Hab' das jetzt auch getestet, es funktioniert. :) Ob das jetzt eine schöne Lösung ist - darüber kann jemand anderes philosophieren. ;-)

Mit freundlichen Grüßen,

Valle

fui-tak 16. Dez 2008 15:57

Re: Server/Client - Daten nicht an Sender, nur an andere Cli
 
Danke Schön! Funktioniert so wie ich es wollte!


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