Moin Quick Silver,
Dein Problem steckt in dieser Zeile:
user,pass,host:string;
String ist nur ein Pointer auf den Inhalt des Wertes, es wird also, unabhängig davon, was in den Feldern steht, immer nur der Pointer auf den String in den Stream geschrieben.
Probier mal string durch array of char zu ersetzen, oder ggf. auch ShortStrings.
Delphi-Quellcode:
user, pass, host: array [1..20] of char;
// oder
user, pass,host: String[20];
20 ist natürlich nur ein Beispiel.