Winsock UDP - Daten kommen nicht durch



  • Hallo Zusammen,

    da meine Nerven langsam ihrem Ende zugehen, wende ich mich an euch in der Hoffnung, dass mir jemand hierbei weiterhelfen kann...

    Ich habe ein Programm geschrieben, das mittels Winsocks über udp kleine Datenpakete verschicken kann.
    Das Programm funktioniert generell vom Code her soweit, allerding nur unter bestimmten Vorraussetzungen.
    Entweder indem ich localhost als Ziel verwende oder indem ich mittels Hamachi ein virtuelles lokales Netzwerk erstelle und die meinem Ziel dort zugewiesene IP verwende.(Windows Firewall kann dabei aktiv sein, funktioniert dennoch)
    Wenn ich das nicht mache werden die Daten zwar rausgeschickt kommen aber nie an...

    Die Sockets usw werden soweit ordnungsgemäß initialisiert, auch bind() und sendto() geben keinen error wieder...

    Hat jemand damit bereits erfahrungen gemacht?
    Muss man noch bestimmte Dinge beachten wenn man versucht Daten mittels udp direkt übers Internet zu schicken?

    Vielen Dank schon mal im Voraus
    Euer Captain



  • 1. es gibt keine Sockets im C++ Standard
    2. ich hab was mit Sockets gemacht, das geht nicht. Was ist falsvh? Wer soll dir das beantworten können?
    3. meine Glaskugel sagt, der Empfänger sitzt hinter nem NAT Router, es gibt aber kein Portforwarding.



  • moinmoin

    muss sich also jeder den ich damit erreichen will erstmal n portforwarding dafür einrichten?
    gibts auch Möglichkeiten des zu umgehen?
    tut mir leid, bin neu auf dem Gebiet hab damit net wirklich viel Erfahrung...
    bin ich mit generellen Fragen dazu hier komplett falsch weil hier nur code-bezogenes erwünscht is?



  • UDP Port Hole Punching, dafür brauchst du aber einen Rendezvous-Server.



  • Ich denke es sollte reichen wenn du auf deinem Router eine Forwarding-Rule für einen bestimmten UDP Port einrichtest.
    Genau diesen Port muss dein Programm auf deinem PC dann auch verwenden.
    Dann sollte es möglich sein von aussen eine Verbindung zu deinem PC aufzubauen.

    Der Router der Leute die die Verbindung zu dir aufbauen müssen muss dann auch nicht modifiziert werden.

    Geht aber eben nur in der Richtung: derjenige der in seinem Router ne Forwarding-Rule eingerichtet hat kann Verbindungen von jedem "annehmen", aber nicht selbst initiieren.


Anmelden zum Antworten