Forum: Netzwerke
by xZise,
9. Okt 2010
Achso, und der zweite Parameter gibt den "Quellsocket" an, also wo das Paket hergekommen ist? Dann hab ich nichts gesagt :stupid: Hab halt nicht so viel damit zu tun.
MfG
Fabian
Forum: Netzwerke
by xZise,
9. Okt 2010
Moin,
könnte er sich dann nicht den Cast sparen und einfach den zweiten Parameter verwenden?
MfG
Fabian
Forum: Netzwerke
by xZise,
8. Okt 2010
Das ist im Grunde genommen diese Liste. Ich sagte auch "am besten ginge es ...", aber da müsste ich noch mehr erklären und man müsste sich das erst downloaden/zusammensuchen.
Ich würde dir empfehlen: Du speicherst in einer Liste zu welcher Connection, welcher Benutzername gehört. Das heißt erstmal findest du heraus, welcher Datentyp .Connections ist. Und dann machst du das entweder mit Records...
Forum: Netzwerke
by xZise,
8. Okt 2010
Die Funktion musst du dir auch noch schreiben. Damit findest du den Nickname zu einer Verbindung heraus. Das heißt irgendwo musst du speichern, wie der Nickname einer bestimmten Verbindung lautet.
Am besten ginge das wohl mit einer Dictionary. Zum Beispiel einer Hashlist.
MfG
Fabian
Forum: Netzwerke
by xZise,
7. Okt 2010
Deine "Vereinfachung" ist doch keine Vereinfachung. Wenn du sagst das die Befehle kein Leerzeichen haben, dann machst du einfach:
var
command : string;
begin
command := Copy(input, 1, Pos(' ', input) - 1);
Dann hast du schon mal den Befehl und den Nick bekommst du ähnlich einfach:
var
command : string;
reciever : string;
message : string
Forum: Netzwerke
by xZise,
6. Okt 2010
Moin,
Dann schreib doch statt "Pointer" einfach "TCustomWinSocket".
Genau so! Du überlegst halt einfach, was du übertragen musst: Zum Beispiel "Schicke an alle" und "Schicke an benutzer". Das heißt du musst übertragen, welcher Typ das ist, damit der Server und die anderen Clients wissen, was für eine Nachricht war das. Dann musst du einen Empfänger definieren, wenn es eine private...
Forum: Netzwerke
by xZise,
6. Okt 2010
Moin,
Also meine Lösung ist nur eine einfachere als die von Zacherl. Weil du immer weißt womit du hantierst und nicht mit Pointern arbeitest.
Vielleicht habe ich das übersehen, aber womit überträgst du die Daten? Zum Beispiel wenn du IdTCP (oder IdUDP) nutzt dann hätte ich es so gespeichert:
type
TClientConnection = class
private
FSocket : TIdTCP;
FNickname : string;