Ich benutze die lidgen-network library 3, um eine Peer-to-Peer-Verbindung herzustellen. Ich bin neu in der Netzwerkprogrammierung, weshalb ich diese Bibliothek verwende.
Mit der Funktion DiscoverKnownPeer () konnte ich mich in meinem Netzwerk verbinden. Was ich online gelesen habe, ist, dass ich einen NAT-Punch-Through machen muss, der einen laufenden Server erfordert, der außerhalb des Routers ist. Ich hoffe auf eine Lösung, die diesen zusätzlichen Server nicht benötigt.
Wenn ich beide IP-Adressen auf einem Webserver speichern kann und einen Webdienst erstellen kann, um die IPs über XML an den jeweiligen Client zu senden, wäre ich in der Lage, eine Peer-to-Peer-Verbindung herzustellen?
Vielen Dank im Voraus.
Nein, Sie können keine Verbindung über NAT ohne einen Rendezvous-Server herstellen
NAT steht Ihnen im Weg, denn selbst wenn Sie die IP-Adresse kennen, bringt Sie das nur bis zum Router. Der Router empfängt eine Anforderung, die aus dem Internet kommt, und weiß nicht, an welche interne IP-Adresse er gesendet werden soll, so dass er es wegwirft.
NAT-Punch-Through funktioniert, indem beide Peers ausgehende Anfragen an andere senden, der Router "weiß" dann, dass Pakete, die auf seine öffentliche IP auf dem gegebenen Port gerichtet sind, zu dem gegebenen Computer gehen sollen.
Sie müssen also beide Computer mit einem externen Server verbinden, der nicht hinter NAT liegt, und dann diesen externen Server verwenden, um die Verbindung der beiden verdeckten NAT-Peers zu koordinieren (dies ist die Peer-Einführung, die Lidgren eingebaut hat).