Questo sito utilizza cookies, anche di terze parti, per mostrare pubblicità e servizi in linea con il tuo account. 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.


I computer sono incredibilmente veloci, accurati e stupidi. Gli uomini sono incredibilmente lenti, inaccurati e intelligenti. L'insieme dei due costituisce una forza incalcolabile. [Albert Einstein]
http://adf.ly/KNVLD
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)


I computer sono incredibilmente veloci, accurati e stupidi. Gli uomini sono incredibilmente lenti, inaccurati e intelligenti. L'insieme dei due costituisce una forza incalcolabile. [Albert Einstein]
http://adf.ly/KNVLD
PM Quote