Questo sito utilizza cookies solo per scopi di autenticazione sul sito e nient'altro. Nessuna informazione personale viene tracciata. Leggi l'informativa sui cookies.
Username: Password: oppure
C/C++ - NAT traversal
Forum - C/C++ - NAT traversal

Avatar
Jake7zDunn (Normal User)
Rookie


Messaggi: 30
Iscritto: 24/07/2012

Segnala al moderatore
Postato alle 21:08
Domenica, 03/08/2014
Sto sviluppando un semplice videogame multiplayer in c++ che usa il protocollo UDP per connettersi ai servers.
Il problema è che se il server sta su un IP pubblico funziona tutto(anche i giocatori dietro NAT si riescono a connettere) mentre se sta su un IP condiviso(dietro NAT) non funziona. La mia idea era quella di permettere anche ai giocatori di aprire dei server.
Giochi come crysis o altri permettono di aprire server anche a chi non ha IP pubblico usando NAT negotiation/NAT traversal ma non ho trovato molte informazioni.
Un'idea che mi era venuta era quella di creare un master-server su IP pubblico che instrada le connessioni server-client ma aumenterebbe in modo esponenziale il ping.

PM Quote
Avatar
ZioCrocifisso (Member)
Pro


Messaggi: 135
Iscritto: 06/03/2013

Segnala al moderatore
Postato alle 15:20
Lunedì, 04/08/2014
Una tecnica che non richiede un relay che trasmette tutti i dati è l'UDP hole punching, e qui trovi un esempio in C:
http://www.rapapaing.com/blog/?p=24

PM Quote
Avatar
Jake7zDunn (Normal User)
Rookie


Messaggi: 30
Iscritto: 24/07/2012

Segnala al moderatore
Postato alle 15:48
Lunedì, 04/08/2014
Grazie, proverò con questa tecnica allora. Poi se non riesco o instrado tutti i dati oppure userò una VPN(penso ad una soluzione come TINC con un programmino c++ che lo autoconfigura)

PM Quote