Zitat:
Jetzt kann ich mit FStream.Read(aKontakt,SizeOf(TKontakt)) die einzelnen Kontake aus dem Stream lesen und in die Datenbank schieben.
Und wann willst Du damit anfangen? Angenommen, der Client weiß nicht wie viele
Kontakte übertragen werden. Angenommen die Kontakte kommen in zufälligen
Intervallen und zufälligen Mengen an. Sobald ein Kontakt ankommt, muss der in die
DB.
Wenn die Daten ungünstig fragmentiert werden, kann es passieren, dass nur die hälfte
vom Record da ist (die andere kommt mit einer Verzögerung an).
Wenn man in so einem Moment FStream.Read(aKontakt,SizeOf(TKontakt)) macht,
fällt der Client auf die Schnauze ... also muss man warten, bis ein Record komplett da ist.
Wie willst Du das feststellen ohne Signaturen? try ... except?
Server und Client müssen ja gleichzeitig laufen und asynchron, das ist das Problem.
Der Server schickt seine Sachen ab und der Client weiß nicht was auf den zukommt,
das muss der selbst rausfinden, ob ein Kontakt da ist oder zwei und ob die komplett
angekommen sind.