Hallo alle zusammen,
ich bastle seit Tagen an einem Server und Client welcher Daten über UDP durch das Internet überträgt und empfängt.
Mein aktueller Stand:
Die Übertragung im lokalen Netz funktioniert reibungslos.
Die Übertragung via Internet funktioniert nur von Client zu Server aber nicht anders herum.
Portforwarding ist im Server Netz eingerichtet sowie die Freigabe in der Firewall.
laut der Wireshark Mittschnitte vom Server sowie des Server Routers gehen die Pakete an die richtige Zieladresse. Beim Client kommt allerdings nichts an(auch in Wireshark geprüft).
Ich sitze da jetzt leider schon seit Tagen dran und weiß einfach nicht was ich vergessen oder nicht beachtet habe...
Über Hilfe würde ich mich sehr freuen. Solltet ihr mehrere Infos brauchen lasst es mich wissen.
Viele Grüße
Portforwarding ist im Server Netz eingerichtet sowie die Freigabe in der Firewall.
Die Fehlerbeschreibung hört sich an als würde das im Client Netz noch fehlen. Es könnte sein dass UDP im Router nicht automatisch das Forwarding zum anfragenden Client öffnet. Bin mir nicht sicher, aber einen Versuch wärs wert.
Hier muss auch beim Client Netz, dann also bei dir lokal, im Router in der Firewall sowie ggf. in der System Firewall auch der Port freigeben werden.
Die Ports gelten i.d.R. immer für Sende- und Empfangsrichtung, entsprechend kannst du ohne offenen Port in deinen Client Netz auch keine Pakete an den Server senden oder empfangen!
T-Virus
Developer, Developer, Developer, Developer....
99 little bugs in the code, 99 little bugs. Take one down, patch it around, 117 little bugs in the code.
Portfreigaben sind nicht notwendig, wenn man UDP Konzepte wie UDP hole punching involviert.
- performance is a feature -
Microsoft MVP - @Website - @AzureStuttgart - github.com/BenjaminAbt - Sustainable Code
Guten Morgen,
danke für die schnellen Antworten.
auf dem Client Rechner wurden die Freigaben ebenfalls in der Firewall gemacht.
Portforwarding habe ich im Client Netz absichtlich weggelassen. Ich möchte nicht, dass jeder Client erstmal Einstellungen im Router vornehmen muss und Eigentlich sollte der Router die Pakete doch annehmen wenn vom Client eine Erfolgreiche Kommunikation zum Server gab oder?
habe da an UDP hole punching gedacht.
Hast es ja nun rein-editiert mit hole punching; aber dran denken allein reicht ja nicht.
Musst es halt auch machen sonst wirds schwer. 😉
- performance is a feature -
Microsoft MVP - @Website - @AzureStuttgart - github.com/BenjaminAbt - Sustainable Code
Ab und zu hilft es einfach mal darüber zu reden,
konnte es jetzt lösen 😃
Ich habe den Fehler gemacht, dass ich für jedes gesendete Packet ein neues UdpClient Objekt erzeugt habe und das nach dem Senden wieder geschlossen habe.
dadurch konnte ich nicht auf den Endpoint zurück senden von dem ich empfangen habe.
Vielen Dank nochmal für eure Antworten