Gast
#4107411
Hallo Leute, ich habe folgendes vor: Ein in MS VS C++ geschriebenes Programm soll einen (beliebigen) UDP-Port öffnen und darüber einen Broadcast ins Netzwerk senden. Die Antworten werte ich dann aus. Umgesetzt habe ich das etwa so: - UdpSocket öffnen, - Mit BeginReceiveFrom und einem Callback über EndReceiveFrom bearbeite ich die empfangenen Meldungen. - Gesendet habe ich mit Sentto.
1 | |
2 | |
3 | |
4 | |
5 | |
6 | |
7 | |
8 | |
9 | |
10 | |
11 | |
12 | |
13 | |
14 | |
15 | |
16 | |
17 | |
18 | |
19 | |
20 | |
Das ganze funktionert wie gewünscht. Mich stören allerdings folgende Punkte: Beim SentTo muss ich die Broadcastadresse (des/eines) Netzes direkt angeben. Wie kann ich das so machen, das automatisch ein Broadcast (am besten über alle verfügbaren Adapter) gesendet wird, ohne das Angeben zu müssen? Ein System::Net::IPAddress::Broadcast tut garnichts. Ich habe auch schon versucht, das Bind wegzulassen. Aber dann geht das BeginReceiveFrom nicht, denn das erwartet ein Bind. Nutze ich nur das BeginReceive (ohne From), so erhalte ich beim Empfang keine (gültige) IP-Adresse des Absenders.