Leider kannst du nicht.
TL; DR
Das sendto
Funktion kehrt zurück, sobald das Paket an den IP-Stack gesendet wurde. Der Kernel-IP-Stack verarbeitet ihn und versucht, das Paket über Ihre WLAN-Schnittstelle zu senden.
Hier liegt das Problem, die WiFi-Übertragungsverzögerung ist lang (verglichen mit drahtgebundenem Ethernet) und unregelmäßig. Hier ist ein Beispiel, welche Latenz Sie erwarten sollten:
Dieses logarithmische Diagramm zeigt die Verzögerung der Ping-Zeit zwischen meinem Server und meinem Router sowie zwischen meinem Server und einem drahtlosen Client. Schon seitping
es bidirektional ist, liegt die unidirektionale Latenz wahrscheinlich bei etwa der Hälfte.
Die kabelgebundene Kommunikation zeigt eine Pingzeit um 300us, während die drahtlosen Verbindungen durchschnittlich 7 ms (23-fache Verzögerung) anzeigen.
Nun fast das gleiche Diagramm, diesmal linear, um Unregelmäßigkeiten hervorzuheben:
Die WLAN-Ping-Zeit variiert zwischen 6 und 45 ms.
Lösungen?
Da die sendto
Funktion früher als erwartet zurückkehrt, können Sie nicht wirklich messen, wann die Pakete gesendet werden. Wenn Sie zu dem Zeitpunkt, zu dem das Paket gesendet wird, wirklich interessiert sind, können Sie es wahrscheinlich schätzen, indem Sie eine Antwort vom Client abwarten und die Hin- und Rückzeit halbieren.
Aber, wie Sie bereits herausgefunden, alle WiFi - Kunden erhalten das Paket zur gleichen Zeit, da es ein Multicast ist.
Die eigentliche Frage lautet also: Was wollen Sie erreichen?
Wenn Sie beispielsweise möchten, dass alle Clients denselben Audiostrom gleichzeitig wiedergeben, sollte dies durch eine Art Software- PLL erreicht werden.
Wenn Sie die Verzögerung minimieren möchten, können Sie immer noch WLAN-Einstellungen vornehmen, insbesondere im Energiesparmodus, am Router und auf den Clients.
Und wenn Sie eine harte Echtzeit- Leistung erzielen möchten, sollten Sie wahrscheinlich nur WLAN vergessen.