Hier ist die jist von Code, den ich gerade in einer Produktions-App verwende, die funktioniert (wir haben ein bisschen extra da, um den Fall zu behandeln, wo der Client Server-Apps auf einer Standalone-Installation laufen). Es ist Aufgabe, UDP-Benachrichtigungen zu erhalten, dass Nachrichten für die Verarbeitung bereit sind. Wie von Adam Alexander erwähnt, ist Ihr einziges Problem, dass Sie IPAddress.Any anstelle von IPAddress.Broadcast verwenden müssen. Sie würden IPAddress.Broadcast nur verwenden, wenn Sie ein Sende-UDP-Paket senden senden möchten.
Richten Sie den udp-Client ein
%Vor%Und um den Beginn eines asynchronen Empfangs mit einem Callback auszulösen.
%Vor%Hoffentlich hilft das, Sie sollten in der Lage sein, es so anzupassen, dass es ohne zu viel Problem synchron funktioniert. Sehr ähnlich wie du es tust. Wenn Sie immer noch den Fehler erhalten, dann muss etwas anderes den Port benutzen, den Sie hören wollen.
Also, um zu klären.
IPAddress.Any = Wird zum Empfangen verwendet. Ich möchte auf ein Paket warten, das auf einer beliebigen IP-Adresse ankommt. IPAddress.Broadcast = Wird zum Senden verwendet. Ich möchte ein Paket an jeden senden, der zuhört.
Für Ihre Zwecke glaube ich, dass Sie IPAddress.Any anstelle von IPAddress.Broadcast verwenden möchten. Hoffe das hilft!