Frage zur TNMUDP-Komponente
-
Hallo Leute,
ich benutze beim BCB 5.0 Pro die TNMUDP-Komponente für den Empfang von UDP-Nachrichten.
Beim Empfang einer neuen NAchricht wird doch die Funktion OnDataReceived() aufgerufen.
Jetzt meine Frage: was passiert, wenn gleichzeitig 3 UDP-Nachrichten empfangen werden? Wird die OnDataReceived() nur einmal für die erste Nachricht aufgerufen, und die restlichen 2 Nachrichten gehen verloren. Oder werden alle 3 irgendwo zwischengespeichert, und OnDataReceived() 3 mal aufgerufen?Danke im Voraus
-
Ich kenne die Komponente nicht, aber bei den Indy-Komponenten wird für jede Verbindung ein eigener Thread gestartet, und die Events werden auch im Threadkontext aufgerufen (was manuelle Synchronisation notwendig macht!).
-
Du meinst wahrscheinlich die TCP/IP-Komponente von Indy.
Die UDP läuft ja verbindungslos. Ich vermute aber, dass die UDP-Pakete, die gleichzeitig angekommen sind, alle verworfen werden.
-
sonic_1233 schrieb:
Du meinst wahrscheinlich die TCP/IP-Komponente von Indy.
Richtig - UDP habe ich überlesen, sorry.
Vermutlich greift TNMUDP auf WinSock zurück, so daß du evtl. im MSDN nachlesen mußt, wie sich WinSock bei UDP verhält.
-
Ok, danke für den Tipp.
Gruß
sonic