Zitat von
Der_Unwissende:
Da sleep aber glaube ich den ganzen Prozess lahm legt, solltest du lieber in einer Schleife warten, die auch weitere Prozessabläufe erlaubt.
Delphi-Quellcode:
if Socket.ReceiveBuf(daten, SizeOf(daten)) <> SizeOf(daten) then
begin
ShowMessage('Aha, noch nicht alles da');
end;
Stimmt sleep legt den ganzen Prozess lahm, deshalb gings ja auch nicht. Ich habe jetzt mal testweise dein Beispiel verwendet (natürlich mit = statt <>), aber leider kommt dann die Meldung gar nicht mehr. Eigentlich müssten doch irgendwann alles da sein und die Bedingung vom IF zutreffen.
Da ich dachte Socket.ReceiveBuf(daten, SizeOf(daten)) ist vielleicht nicht das selbe wie SizeOf(daten) habe ich es mal mit socket.receivelength probiert, was aber leider auch nicht ging.
Vielleicht kannst du mir ja einen heißen Tipp geben, wie es in etwa gehen könnte.