Moin,
ich bastel an einem Tool, mitdem 2 PC's über die Sockets kommunizieren (
Indy war mir irgendwie komisch mit dem Writln und Readln da
). Einer ist der Server, der andere der Client
. Jetzt habe ich ein ListView im Report-Modus, wo ein Paar Infos reinkommen. Name, des Clienten (sendet der Client natürlich),
IP, Benutz welcher am Remote-PC sitz, Version des Clienten und Ping. Wenn sich der Client verbindet, soll er mir alles außer seiner
IP und dem Ping senden (mache ich am Server mit Socket.RemoteAdress). Dafür habe ich mir folgendes überlegt:
Delphi-Quellcode:
procedure TfrmMain.TCPClientConnect(Sender: TObject; Socket: TCustomWinSocket);
begin
Socket.SendText('remoteinfo§' + Name + '#' + ComUser + '#' + APP_VERSION);
end;
'remoteinfo' ist der Befehl, dass das nachfolgende alles die Infos des Remotecomputers sind. '§' ist das Ende des Befehls und '#' grenzen die einzelnen Infos voneinander ab.
Name = Name des Clienten
ComUser = Name des Benutzers, der am PC angemeldet ist
APP_VERSION = Eine konstante mit der Versiond es Clienten
Aber ich weiß nicht wie ich alles voneinander trennen soll. Ich habe zwar
das hier, aber ich kriege es nicht zusammen
Dazu kommt dann noch wie das mit der Abfrage am Server ist.
Delphi-Quellcode:
procedure TfrmMain.TCPServerClientRead(Sender: TObject;
Socket: TCustomWinSocket);
begin
case Socket.ReceiveText of
'Befehl': {das mit dem trennen ist aber jetzt komisch, denn der ReceiveText ist ja nicht nur der Befehl, sonder auch die Info :/ Also muss ich erst Befehl und Info trennen... Irgendwie davor...};
end;
end;
Hoffe ihr könnt mir auf die Sprünge helfen ...
[EDIT]: Zumindestens weiß ich, wie ich mit Pos mein Befehlszeichen ausmachen kann... Immerhin etwas