Das Beispiel ist eher an Telnet angelehnt, wo Client und Server spontan (unabhängig voneinander) etwas mitteilen dürfen.
Zum Beispiel einander Chatmeldungen oder Bilder senden

. Oder bei Spielen, wenn du Daten austauschen willst.
Wenn du nur rasch "Hallo Server, gib mir was" senden willst, dann sind readln/writeln sicher ok - aber für komplexere Anwendungen bist du mit Indys IOHandler oder ICSOverbytes asynchronen Komponentan wesentlich flexibler unterwegs.