Hallo Bernhard_LA,
habe mal das hier getestet:
1_sample Simple String Exchange
Habe dort den Client genommen,
IP und Port angepasst sowie das WriteLn rausgenommen, weil ich dem Server nix schicken muss, sondern NUR empfange.
Dann habe ich das Programm gestartet und die Verbindung hergestellt (CheckBox) sowie den Button gedrückt, welcher jetzt nur noch das ReadLN ausführt gedrückt und da bleibt er dann ewig drinne stehen obwohl eigentlich was kommen müsste (Scanne die ganze Zeit Barcodes).
Fazit: Geht damit also auch nicht. Verstehe das selber nicht ganz...
Hier der angepasste Source:
Delphi-Quellcode:
procedure TClientForm.ButtonSendStringClick(Sender: TObject);
var
LLine: String;
begin
//IdTCPClient1.IOHandler.WriteLn(Edit1.Text, TIdTextEncoding.Default);
Edit1.Text := '';
LLine := IdTCPClient1.IOHandler.ReadLn();
if ( LLine = 'OK' ) then
Memo1.Lines.Add('Server says it has received your String')
else
Memo1.Lines.Add(LLine);
end;
procedure TClientForm.CheckBoxConnectDisconnetClick(Sender: TObject);
begin
if ( CheckBoxConnectDisconnet.Checked ) then
begin
IdTCPClient1.Host := '172.20.22.124';
IdTCPClient1.Port := 50003;
IdTCPClient1.Connect;
end
else
IdTCPClient1.Disconnect;
end;
procedure TClientForm.IdTCPClient1Connected(Sender: TObject);
begin
Memo1.Lines.Add('Client connected with server');
end;
procedure TClientForm.IdTCPClient1Disconnected(Sender: TObject);
begin
Memo1.Lines.Add('Client disconnected from server');
end;
PS: CheckBoxConnectDisconnet.Checked = True solltest du nicht abfragen
Dazu gibts hier jede Menge Diskussionsbeiträge. Ich habe das "= True" einfach weggenommen
Grüße
Alex