Einzelnen Beitrag anzeigen

TheMighty

Registriert seit: 14. Sep 2006
2 Beiträge
 
#5

Re: Frage zu TServersocket/Indy!

  Alt 14. Sep 2006, 16:05
Ich hatte vor kurzem das gleiche Problem.

Der Client müsste irgendwie wissen was gerade gesendet wird: der Computername oder die bestätigung, dass der Server da ist.

Erste Lösung (nicht sehr schön, aber einfach):
Der Client setzt nach dem Senden von "Computername" eine Variable auf "True" und kann anhand dieser dann beim Lesen der Nachricht des Servers abfragen, ob diese Nachricht nach der Anfrage "Computername" kommt. Das ist dann höchstwarscheinlich der Computername des Servers.

Zweite Lösung (besser, aber komplizierter):
Der Server schickt den Computernamen mit einem Kontrollzeichen davor (etwa so: "*PCArbeitszimmer").
Dann kann der Client mit

if Socket.RecieveText[1] = "*"

abfragen, ob das erste Zeichen ein * ist.
Dann musst du nur noch den Stern aus dem String entfernen um den Computernamen auch verwenden zu können:

// Str ist der empfangene String
var
AktuellesZeichen: Integer;
begin
Computername := '';
AktuellesZeichen := 2;
while AktuellesZeichen <= Length(Str) do
begin
Computername := Computername + Str[AktuellesZeichen];
AktuellesZeichen := AktuellesZeichen + 1;
end;
end;

hoffe das hilft
Mfg The Mighty
  Mit Zitat antworten Zitat