![]() |
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.ä? |
Re: Sockets: Daten an "relativ" unbekannten Client
Zitat:
|
Re: Sockets: Daten an "relativ" unbekannten Client
Es ist nichts passiert.
|
Re: Sockets: Daten an "relativ" unbekannten Client
Ich habe es jetzt wie hier gemacht:
![]()
Delphi-Quellcode:
Schätze es funktioniert auch, bleibt aber ein Problem. Ich müsste ein array von TUser anlegen.
type
TUser = record username: string; ip: string; socket: TCustomWinSocket; end;
Delphi-Quellcode:
und dieses Array müsste ich bei jeder neuen verbindung erweitern.
Benutzer: array of Tuser;
Delphi-Quellcode:
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?
SetLength(Benutzer, AnzahlBenutzer);
|
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.
|
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 17:57 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