@Marabu
Wieso muss ich das?
Es ist beabsichtigt das es immer über den Server geht. Der Server übernimmt praktisch die ganze Verwaltungsarbeit.
Es geht ja auch das über den Server mehrere Clients auch untereinander komunizieren können ich will nur nicht den Weg des größten Traffics oder der ganzen adressiererei mit den ID's beim connecten und verlassen des Servers gehen.
Er soll jediglich dem
Client PC0078 eine eindeutige
ID geben mit der ich immer sagen kann, wenn jemand mit
PC0078 reden will, das der Server weiss aha
PC0078 hat
ID = 1 also
Socket.Connections[1].SendText(S);
@Alzaimar
Klingt soweit nicht schlecht. Es soll sich hierbei aber nicht nur im eine 'chatartige' komunikation handeln, sondern später auch Dateien übertragen werden(Update Funktion von Programmen), da kann es dann auch mal zu einer grossen Datenmenge kommen.
Die Clients hängen auch leider nicht alle an einer Domäne.
Klingt jetzt doof aber auf der Keramik hat man ja bekanntlich die besten Ideen...
Ich weiss auch nicht wieso ich da erst jetzt drauf komme aber ich werds jetzt mal einfügen, vllt. gibt es ja noch eine einfachere Methode, hoff ich...
Wenn eine Nachricht für für den Client 'X' auftaucht, starte ich einfach eine Schleife und lasse ihn suchen
Beim connecten wird der
IP ein PC-Name zugeordnet, hier eben PC0078
Delphi-Quellcode:
FOR n := 0 to MaxConnections DO BEGIN
IF Socket.Connections[n].RemoteAddress = Client 'X' Adresse THEN ....
NEXT;
Problem dabei ist wenn mehrere Clients die Selbe
IP nutzen gibt es schon Probleme.