UDP Socket - Missing UDP Port
Verfasst: Montag 17. August 2020, 14:21
Hallo zusammen,
es handelt sich evtl. um eine banale Frage, aber vielleicht kann mir dennoch jemand beim folgendem Thema helfen:
Test-Setup:
Mein Rechner und zwei Steuergeräte hängen beide an einem Gateway. Es handelt sich um zwei verschiedene Netzwerk. Zwischen Rechner und Gateway IP = 169.254.... und zwischen Gateway und den Steuergeräten IP = 150.45.199....
Beide Steuergeräte kommunizieren miteinander und das Gateway routet die Pakete an den Rechner.
Ich möchte nun Daten von den Steuergeräten empfangen und auch an die Steuergeräte senden. Es handelt sich dabei um UDP Pakete.
Das Problem ist, dass ich nicht auf welchen Port ich mich binden muss.
s = socket.socket(socket.AF_INET, socket.SOCK_DGRAM)
s.bind(("",30510))
data, address = s.recvfrom(1024)
Das Steuergerät sollte die Pakete immer an den Port 30510 senden. Ich weiß aber nicht ob das Gateway beim Routing ebenfalls die Pakete an den Port 30510 (an Rechner) sendet oder irgendeinen anderen verwendet.
In Wireshark sind die Pakete jedoch zu sehen. D.h. das Gateway routet die Pakete an den Rechner und Wireshark kann diese auch empfangen.
Aber wenn ich das über Python versuche erhalte ich keine Pakete.
Wenn ich einen Server und einen Client selbst baue, dann bekomme ich das mit den Sockets hin (also Grundkenntnisse sind vorhanden).
Wie mache ich das aber, wenn der zweite Teilnehmer nicht von mir ist. Es halt ein Gateway, am Rechner über LAN angeschlossen. Was setzte ich beim socket.bind(()) ein, wenn ich nicht weiß wohin die Pakete vom Gateway gesendet werden?
Oder anders gefragt:
Kann ich ganz allgemein Pakete über den LAN Anschluss empfangen, unabhängig vom Port? Ich meine, Wireshark bekommt das ja auch irgendwie hin.
Vielen Dank und schöne Grüße
Stefan Kunz
es handelt sich evtl. um eine banale Frage, aber vielleicht kann mir dennoch jemand beim folgendem Thema helfen:
Test-Setup:
Mein Rechner und zwei Steuergeräte hängen beide an einem Gateway. Es handelt sich um zwei verschiedene Netzwerk. Zwischen Rechner und Gateway IP = 169.254.... und zwischen Gateway und den Steuergeräten IP = 150.45.199....
Beide Steuergeräte kommunizieren miteinander und das Gateway routet die Pakete an den Rechner.
Ich möchte nun Daten von den Steuergeräten empfangen und auch an die Steuergeräte senden. Es handelt sich dabei um UDP Pakete.
Das Problem ist, dass ich nicht auf welchen Port ich mich binden muss.
s = socket.socket(socket.AF_INET, socket.SOCK_DGRAM)
s.bind(("",30510))
data, address = s.recvfrom(1024)
Das Steuergerät sollte die Pakete immer an den Port 30510 senden. Ich weiß aber nicht ob das Gateway beim Routing ebenfalls die Pakete an den Port 30510 (an Rechner) sendet oder irgendeinen anderen verwendet.
In Wireshark sind die Pakete jedoch zu sehen. D.h. das Gateway routet die Pakete an den Rechner und Wireshark kann diese auch empfangen.
Aber wenn ich das über Python versuche erhalte ich keine Pakete.
Wenn ich einen Server und einen Client selbst baue, dann bekomme ich das mit den Sockets hin (also Grundkenntnisse sind vorhanden).
Wie mache ich das aber, wenn der zweite Teilnehmer nicht von mir ist. Es halt ein Gateway, am Rechner über LAN angeschlossen. Was setzte ich beim socket.bind(()) ein, wenn ich nicht weiß wohin die Pakete vom Gateway gesendet werden?
Oder anders gefragt:
Kann ich ganz allgemein Pakete über den LAN Anschluss empfangen, unabhängig vom Port? Ich meine, Wireshark bekommt das ja auch irgendwie hin.
Vielen Dank und schöne Grüße
Stefan Kunz