tja, also bis jetzt hab ich es nur geschafft, an alle eine Nachricht zu schicken.
Wenn sich ein Client mit dem Server verbindet, dann schreib ich in eine ListBox die
IP des Clienten und ausgehen von der
IP schreibe ich den Username in eine 2. ListBox.
Aber das Socket oder so speicher ich noch nicht.
Ich hab jetzt mal ein bisschen gebastelt, mit Pointern.
Delphi-Quellcode:
type
PClientData = ^TClientData;
TClientData =
record
UserNick:
string;
IP:
string;
SocketPointer: pointer;
end;
...
var
Form4: TForm4;
UserList: TList;
UserData: PClientData;
//Pointer auf TClientData (Record)
implementation
...
New(UserData);
//neuer Pointer auf TClientData
UserData^.IP:=Socket.RemoteAddress;
UserData^.SocketPointer:=Cardinal(Socket);
UserData^.UserNick:=UserNick.Items.Strings[UserNick.Items.Count];
Das ist das, was ich bisher habe. Allerdings gibt mir Delphi natürlich beim SocketPointer eine Fehlermeldung, da wäre nochmal gut zu wissen, wohin der Pointer eig zeigen soll (also, wie bringe ich da eine Pointer auf das entsprechende Socket unter?).
Zu dem Protokoll muss ich sagen, dass ich gerade total auf der Leitung stehe...
[Edit]Was du damit meinst, wie ich die Daten übertrage, ist mir auch nicht ganz klar. Ich denke mal mit
TCP/
IP und einer ganz normalen TClientSocket bzw. TServerSocket... war es das was du meintest?[/Edit]