Moin Bernhard,
ich habe es jetzt hinbekommen.
Kann gleich auch mal meinen Code posten - der ist aber aufgrund der Tests noch sehr konfus
Anyway ..
Ich werte jetzt in einem Thread den InputBuffer und lese den ggf. mit ReadBytes. Das verhindert schon mal eine Blockade beim Lesen vom socket.
In der Consolenanwendung selber nurtze ich Read um Zeichen zu lesen und werte das CR & LF aus. Das Read blockt kann ich nicht bestätigen. Wenn ich nämlich im Thread zyklisch einfach was auf die Console schreibe, dann wird es angezeigt obwohl ich ein Read aktiv habe was auf ein Zeichen wartet.
Bei enter wird das Commando dann dem TIdTCPClient gegeben zum Verschicken - "gesichert" über einen TMutex.
Das klappt bis jetzt wunderbar. Ich kann eingaben machen und parallel dazu bekomme ich direkt Feedback auf der Console.