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


Anmelden zum Antworten