Nun ja, es geht zwar um Readln, aber eben immer noch um das gleiche TimeOut. Wenn du versuchst etwas zu lesen (Readln), dann wird eine Verbindung zum Server (der Gegenstelle) aufgebaut. Mit dem zweiten Argument (TimeOut) setzt du nur die Dauer in ms, die vergehen darf, bis diese Verbindung hergestellt ist.
Möchtest du für eine bestimmte Operation mehr / weniger Zeit zum Aufbau dieser Verbindung lassen, kannst du das halt an dieser Stelle tun, sonst wird der global gesetzte Wert verwendet.
Ist halt
Indy Logik, aber wie lange jetzt das eigentliche Lesen einer Zeile dauert ist und bleibt egal. Du empfängst etwas, wertest es aus (suchst nach #10), allozierst Speicher (Rückgabestring), wandelst das Empfangene in einen String... Schon allein das alles kostet dich ein paar Ticks (die schon mal in der gemessenen Zeit stecken).
Dann kommt noch dazu, dass wenn du mehr als ein Zeichen empfängst, jedes Zeichen empfangen werden muss. Wie viele Packete dass dann sind kannst du wohl eher nicht festlegen, somit auch nicht die Zeit die für das verschicken von einem Packet nötig ist. Zwischen dem Senden zweier Packete darf dann auch noch eine Zeit liegen. Und dann wäre da noch ein Acknowledgment oder eben nicht (bei
TCP), das alles misst du halt mit und es hat letztlich nichts mit dem Timeout zu tun (dieses würde nie verletzt werden).
Also weiß ich nicht, warum du einen anderen Wert erwartest (schon garnicht was für einen)