An einem Port UDP Pakete empfangen und daraus die IP des Senders herausfinden
-
Hallo,
bin leider ziemlich bei dem Thema verzweifelt und suche schon ewig nach einer Lösung...
Wie gesagt: Ich weiß dass mir andere clients udp pakete über einen bestimmten Port senden. Sehr gut zb in Wireshark sichtbar.
Die IPs der clients würde ich gerne in eine Liste schreiben.Das hab ich schon probiert...
UdpClient^ receivingUdpClient = gcnew UdpClient(65468); MessageBox::Show( "This "); //Creates an IPEndPoint to record the IP Address and port number of the sender. // The IPEndPoint will allow you to read datagrams sent from any source. IPEndPoint^ RemoteIpEndPoint = gcnew IPEndPoint( IPAddress::Any,0 ); try { // Blocks until a message returns on this socket from a remote host. array<Byte>^receiveBytes = receivingUdpClient->Receive( RemoteIpEndPoint ); String^ returnData = Encoding::ASCII->GetString( receiveBytes ); MessageBox::Show( "This is the message you received {0}"+ returnData->ToString() ); MessageBox::Show( "This message was sent from {0} on their port number {1}"+ RemoteIpEndPoint->Address->ToString()+ RemoteIpEndPoint->Port.ToString() ); } catch ( Exception^ e ) { MessageBox::Show( e->ToString() ); }
Kanns sein dass "Receive()" nur funktioniert wenn ich davor ne Anfrage geschickt hab?
ebenso hab ichs mit der Net.Socket Klasse probiert...
außerdem hab ichs mit winpcap probiert (pcap.h includen hat nach ewigem basteln funktioniert, dann aber nicht mal das deklarieren von simplen Variablen von pcap)kann mir einer weiterhelfen? Eigentlich brauch ich nicht mal die Daten von den Paketen, nur die Absender IP.
Meistens passiert leider gar nichts...Vielen Dank an Alle die sich die Mühe machen und Antworten
-
Bist Du sicher das etwas an diesen Prot geschickt wird? Schreib doch ein kleines Testprogramm, das etwas dahin schickt...
-
Hallo,
danke danke danke Jochen - manchmal haperts wohl an den einfachsten Dingen.
Ich dachte die ganze Zeit ich mach was beim Programmieren falsch, nur hab ich immer Source-Port und Destination-Port verwechselt...Naja, hab wie du gesagt hast das Sendeproggi geschrieben und siehe da - das Empfangen funktioniert. Jetzt weiss ich zumindest dass es nicht am Programm liegt.
Grüße