Forum: PC-Programmierung Vb.Net: UDP Broadcast: IP/Port des Senders feststellen


von Hanns-Jürgen M. (yogy)


Lesenswert?

Hallo, angeblich ist das mit VB.Net nicht möglich (Tante Google), aber 
ich frage mal.

Ich empfange mit einem einfachen VB Progrämmchen (ich habe nur sehr 
wenig Ahnung von VB.Net, C++, C# oder überhaupt OOP) UDP 
Broadcast-Nachrichten. Ich möchte nun die IP und die Portnummer des 
Senders feststellen.

Bei einem Microcontroller-System mit W5500 Chip ist da ja möglich. Nur 
wir soll das hier gehen? (okay, die Portnummer ist implizit gegeben)

Der Empfang läuft folgendermaßen (nur der Vollständigkeit halber):
1
Dim UdpReceivingClient = New UdpClient(9999)  'wird auch zum Senden benötigt..
2
UdpReceivingClient.EnableBroadcast = True
3
Dim RemoteIpEndPoint As New IPEndPoint(IPAddress.Any, 9999)
4
5
endTime = Now.AddMilliseconds(20000)      'Time Out in ms
6
    While Now < endTime
7
       Application.DoEvents()
8
       If UdpReceivingClient.Available Then
9
          endTime = Now
10
       End If
11
    End While
12
    If UdpReceivingClient.Available Then
13
       Dim Anz As Integer
14
       Anz = CInt(UdpReceivingClient.Available)  
15
       Dim rdata As Byte() = (UdpReceivingClient.Receive(RemoteIpEndPoint))
16
    End If

Der Empfang der UDP-Nachricht funktioniert.

Nur, wie erhalte ich die IP des Senders?

von Felix U. (ubfx)


Lesenswert?

Hast du das RemoteIpEndpoint-Objekt mal nach dem Aufruf geprüft? Laut 
MSDN beinhaltet das dann die gesuchte Information

https://docs.microsoft.com/de-de/dotnet/api/system.net.sockets.udpclient.receive?view=netframework-4.7.2

Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.