Hallo Dominik,
Delphi-Quellcode:
procedure TTcpClientThread.Execute;
var
s : AnsiString;
begin
while (
not terminated)
do
begin
try
// 1.
while not tcpClientTr.Connected
do
begin
try
tcpClientTr.Connect;
except
on E:
Exception do
begin
MainFormClient.IncomingMessages.Lines.Add('
Error '+E.
Message);
sleep(5000);
end;
end;
end;
// 2.
if not tcpClientTr.IOHandler.InputBufferIsEmpty
then
begin
s:= tcpClientTr.IOHandler.InputBufferAsString;
MainFormClient.IncomingMessages.Lines.Add('
Received : ' + S);
s:='
';
end
else
begin
sleep(100);
end;
except
on E:
Exception do
begin
MainFormClient.IncomingMessages.Lines.Add('
Error '+E.
Message);
tcpClientTr.IOHandler.CloseGracefully;
end;
end;
end;
// tcpClientTr.Disconnect;
end;
sodele mit dem obigen code funktioniert es.
Frage mich nicht warum.
Wenn die Stellen zwischen 1. und 2. auskommentiert werden
funktioniert es nicht mehr.
Keine Ahnung warum.
.. und noch etwas dazugelernt.
Delphi-Quellcode:
var
i : Byte;
begin
for i:= 0 to tcpServer.Contexts.LockList.Count -1 do
tidContext(tcpServer.Contexts.LockList.Items[i]).Connection.IOHandler.Write('Hallo');
tcpServer.Contexts.unLockList; // Danke an Apollonius
end;
Für das Auflisten der Clientverbindungen braucht man keine seperate Liste,
der TCPServer bringt eine mit.
Grüße
Klaus