Socket.ReceiveText bricht wohl bei einer #0 (PChar) ab mit Lesen, aber du empfängst ja
Binär-Daten.
Außerdem könnte bei diesen Text-Lese-Funktionen auch noch eine Zeichensatzdekodierung statfinden, welche ebenfalls nicht sonderlich gut wäre.
- zeilenweise den Text (Header) lesen
- und dann ab der ersten Leerzeile, welche übrigens das "Trennzeichen" zwischen Header und Daten darstellt, mußt du dann binär lesen.