Meine Anwendung ist nicht blockierend.
Ah, okay, das ist dann wohl neu.
Hier im Thread und Testprojekt ging es immer um non blocking.
Mein echtes Projekt hatte
Indy genutzt, also blocking.
Das stelle ich derzeit entsprechend um.
@stahli:
Deine Send-Routine enthält auf jeden Fall das von mir beschriebene Problem, dass
send deine Daten bei non-blocking Sockets leider NICHT garantiert komplett verschickt:
...
Achso: Den
TCP Stack direkt buffern zu lassen - wie du es momentan machst -, ist meiner Meinung nach keine gute Idee. Die Buffergröße hängt von verschiedenen Parametern ab und kann sich von System zu System stark unterscheiden. Wenn du dann versuchst eine Nachricht zu schicken, die nicht komplett in den Buffer passt, wird deine Verbindung dauerhaft blockiert sein, da du in diesem Falle ja niemals Daten ausliest (also auch keinen neuen Platz im Receive-Buffer schaffst).
Zumindest geben SendStream immer True zurück. Also sollten sie erfolgreich verlaufen.
Die Datenmengen sind derzeit auch sehr klein, so dass diese kein Problem darstellen sollte.
Ich gehe derzeit eher von einem Threading-Problem aus.
Aber ich schaue mir das die nächsten Tage nochmal genauer an.
Danke Euch!