Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Netzwerke (https://www.delphipraxis.net/14-netzwerke/)
-   -   Delphi Socket - Datenverlust (https://www.delphipraxis.net/1127-socket-datenverlust.html)

Akni 22. Okt 2002 09:36


Socket - Datenverlust
 
Hi,

ich habe folgendes Problem: ich schicke Daten mit SendBuf über eine Socket-Verbindung. Die Verbindung funktioniert, aber manchmal gibt ReceiveBuf -1 zurück und die Daten verloren gehen. Beim nächsten Receive kriege ich Daten ganz normal wieder.
Wie kann ich diesen Datenverlust vermeiden?

sakura 22. Okt 2002 10:50

Ich bin mir jetyt nicht sicher. Aber wahrscheinlich basieren die Socket-Verbindungen auf dem UDP Protokoll. Das UDP Protokoll ist zwar schnell, garantiert dafür aber nicht das ordnungsgemäße Versenden von Daten.

Nutze lieber ein TCP Verbindung, da dieses Protokoll auch das ordnungsgemäße Versenden garantieren kann, ausser, der Zielrechner ist nicht erreichbar, aber dann gibt es auch eine entsprechende Nachricht.

P.S. Der Beitrag beruht jetzt einfach nur auf einer Vermutung, was es die Socket-Komponenten angeht. :D

Salomon 22. Okt 2002 13:24

Hi,
Socket Verbindung allein, sagt ja nichts über das verwendete Protkoll aus, ich gehe schon davon aus das Akni zum Daten versenden die TCP Komponenten nutzt.

Akni 22. Okt 2002 13:56

Ich benutze TServerSocket, TClientSocket - Componente. Und sowie ich weiss, die sind TCP/P basierend

Salomon 22. Okt 2002 14:45

Liste der Anhänge anzeigen (Anzahl: 1)
Ja, die sind TCP / IP basierend. Ich weiß jetzt nicht woran es liegt, aber im damaligen DelphiForum.de hat jemand mal ein kleines Beispiel Programm veröffentlich.
Ich füge die Datein mal an. Das Copyright liegt nicht bei mir, aber da es ein Beispielprogramm ist, wird der Programmierer wohl nichts dagegen haben.


Alle Zeitangaben in WEZ +1. Es ist jetzt 09:48 Uhr.

Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz