Einzelnen Beitrag anzeigen

AJ_Oldendorf

Registriert seit: 12. Jun 2009
385 Beiträge
 
Delphi 12 Athens
 
#14

AW: Probleme mit TIdTCPClient / TIdTCPServer

  Alt 10. Aug 2012, 14:20
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
  Mit Zitat antworten Zitat