Ich kenne mich mit den Indies nicht sonderlich aus, aber AFAIK wird der Stream nicht "am Stück" übertragen, sondern häppchenweise, das heißt in kleinen Paketen (nach meiner Erinnerung so etwa 4 KB groß, ich kann mich aber auch irren). Diese müssen auch nicht unbedingt in der Reihenfolge ankommen, in der sie gesendet wurden. Wenn also
Indy da nicht schon entsprechende Mechanismen eingebaut hat, wirst Du Dir darüber selbst Gedanken machen müssen.
Ja,
Indy verwendet einen internen Puffer und schreibt diesen dann in den Socket wenn er voll ist, beziehungsweise wenn das Schreiben des Streams abgeschlossen ist.
TCP ist aber im Prinzip schon streamorientiert, das heisst Stream rein - Stream raus. Fehlende Pakete fordert die Gegenseite notfalls mehrmals an, bis alle in der richtigen Reihenfolge angekommen sind:
"In the event of packet loss, the receiver asks for retransmission or the sender automatically resends any segments that have not been acknowledged"
http://en.wikipedia.org/wiki/Packet_loss
Auf der Empfängerseite braucht
Indy nichts weiter zu tun als aus dem Socket zu lesen, da muss
Indy zum Glück nichts wieder in die richtige Reihenfolge bringen