Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Netzwerke (https://www.delphipraxis.net/14-netzwerke/)
-   -   Delphi Sockets: Daten an "relativ" unbekannten Client senden (https://www.delphipraxis.net/122175-sockets-daten-relativ-unbekannten-client-senden.html)

napsterxx 10. Okt 2008 22:29


Sockets: Daten an "relativ" unbekannten Client sen
 
Ok Threadtitel ist bestimmt nicht so glücklich gewählt, aber darvon kann man ja einmal absehen.
Kurz zu meinem Programm bzw den Programmen (Server und Client).
Der Client verbindet zum Server und sendet einen Benutzernamen.
Der Server merkt sich nun den Benutzernamen, den SocketHandle und die IP Adresse.
Jetzt verbindet ein anderer Client sprich auch ein anderer Benutzername.
Jetzt soll der Server dem ersten Client bescheid geben, das Client Nr. 2 online ist.
Jedoch weis ich nicht wie ich dem Client etwas senden soll.
Habe es erst über Socket.Connections[] und dann den Index aus der Tabelle probiert, aber es hat nicht hingehauen.
Kann ich vielleicht dem ServerSocket.Socket die gespeicherte SocketHandler zuweisen o.s.ä?

jaenicke 10. Okt 2008 22:35

Re: Sockets: Daten an "relativ" unbekannten Client
 
Zitat:

Zitat von napsterxx
Habe es erst über Socket.Connections[] und dann den Index aus der Tabelle probiert, aber es hat nicht hingehauen.

Was hast du denn versucht, also welchen Code, und was hat nicht hingehauen? Gab es beim Kompilieren Fehler? Ist nichts passiert?

napsterxx 10. Okt 2008 22:48

Re: Sockets: Daten an "relativ" unbekannten Client
 
Es ist nichts passiert.

napsterxx 11. Okt 2008 10:56

Re: Sockets: Daten an "relativ" unbekannten Client
 
Ich habe es jetzt wie hier gemacht:
http://www.delphipraxis.net/internal...+server+client


Delphi-Quellcode:
  type
    TUser = record
      username: string;
      ip: string;
      socket: TCustomWinSocket;
  end;
Schätze es funktioniert auch, bleibt aber ein Problem. Ich müsste ein array von TUser anlegen.
Delphi-Quellcode:
Benutzer: array of Tuser;
und dieses Array müsste ich bei jeder neuen verbindung erweitern.
Delphi-Quellcode:
SetLength(Benutzer, AnzahlBenutzer);
auch das wäre kein Problem, jedoch wenn nun jemand Disconncted muss ich ihn auch wieder aus dieser Liste "Streichen" und das ist sicherlich nicht so sehr komfortabel da ich dann "Löcher" in meinem Array habe und somit alle anderen nachfolgenden Clienten verschieben müsste, was bei vielen Benutzern imenser Rechenaufwand ist. Jemand eine Lösung parat?

SirThornberry 11. Okt 2008 12:34

Re: Sockets: Daten an "relativ" unbekannten Client
 
was genau du senden musst hängt davon ab was der Client erwartet. Und das kann dir nur der Programmierer des Clients verraten bzw. das Protokoll welches verwendet wird.

napsterxx 11. Okt 2008 12:58

Re: Sockets: Daten an "relativ" unbekannten Client
 
Das Problem ist mittlerweile nicht mehr das Senden, sondern wenn ein Client disconnected muss ich ihn (Tuser) aus meinem Array löschen, und dadurch entstehen Löcher :D


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