Projektuję aplikację p2p, która działa na porcie 30000. Mój router nie jest UPnP, więc musiałem przesłać port do routera. Ale Skype inna aplikacja p2p działa bez przekierowania portów na moim komputerze. Kiedy przeanalizowałem go za pomocą wireshark, znalazłem jego użycie portu UDP 48980, 58544. Używam C++.Jak działa Skype bez przekierowania portów?
Istnieje biblioteka w pythonie here, która to robi dla routery Nat PnP. Czy możliwe jest programowe przekazanie portu do routera niezależnie od typu routera i systemu operacyjnego. Jakie powinno być podejście do tego w C++ lub jakimkolwiek innym języku.
ale pytanie jest to, że IP klientów PUBLICZNE? patrz na przykład A musi komunikować się z B, a serwer zna IP B, ale jakiego ip używa? jeśli tak, to możesz wysłać polecenie ping anyones ip? przepraszam, jeśli to głupie. –
Ta odpowiedź opisuje tylko A i nie daje się komunikować z B, a serwer wysyła odpowiednią kombinację IP/Port do użytkownika B. Brakuje głównego punktu, który nazywany jest dziurkowaniem i jest bardzo dobrze opisany w linku dostarczone przez @MartinBeckett. Dodam tylko, że możliwe jest również przekazanie portu niezależnie od typu routera i systemu operacyjnego, o ile router obsługuje UPnP. – Igor
@ Tak, więc co z symetrycznym NAT? – onmyway133