Moin,
[...]Hm, wenn ich das richtig verstanden hab mit dem Cardinal(Socket): Socket ist die Variable bei ServerSocketClientConnect(Socket: TCustomWinSocket);[...]
Dann schreib doch statt "Pointer" einfach "TCustomWinSocket".
[...]
Oh man, ich trau gar nicht, dass zu sagen, aber ich hab's immer noch nicht verstanden mit dem Protokoll. So wie ich mir vorstelle, läuft das so, dass User A
/msg to B {content} schreibt und das an den Server schickt.
Der Server empfängt etwas, überprüft, ob am Anfang etwas steht (hier ja: /msg to B) versteht: "aha, /msg to bedeutet, dass soll eine private Nachricht sein", überprüft dann den angegebenen User, ob der angemeldet ist und schickt die Nachricht an ihn.
Ist meine Vorstellung davon überhaupt korrekt?? Ich fürchte fast nein...
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 Nachricht ist. Und zum Schluss musst du dann noch den Inhalt dazu schreiben.
Der Server liest nun die Nachricht und entschlüsselt den Typ um heraus zu finden, was er damit machen soll und handelt dann entsprechend. Zum Beispiel wenn man eine private Nachricht verschicken will, das habe ich ja schon beschrieben.
So könntest du zum Beispiel einen Befehl definieren, um den Nickname eines Benutzers zu ändern und weitere Befehle definieren.
MfG
Fabian