2010-09-24 20 views
8

Sto utilizzando la libreria 3 di lidgen-network per provare e creare una connessione peer-to-peer. Sono nuovo alla programmazione di rete ed è per questo che sto usando questa libreria.La libreria di rete lidgren può connettersi direttamente peer-to-peer con entrambi gli indirizzi IP

Utilizzando la funzione DiscoverKnownPeer() sono stato in grado di connettermi nella mia rete. Quello che ho letto online è che ho bisogno di fare un punch-to NAT che richiede un server in esecuzione che è al di fuori del router. Sto sperando in una soluzione che non richiede questo server extra.

Se riesco a memorizzare entrambi gli addetti IP su un server Web e creare un servizio Web per inviare gli ip a ciascun rispettivo client tramite XML, sarei in grado di creare una connessione peer-to-peer?

Grazie in anticipo.

risposta

4

No, non sarà in grado di stabilire una connessione attraverso NAT senza un server appuntamento

NAT sta sulla tua strada perché anche se si conosce l'indirizzo IP, che si ottiene solo per quanto riguarda il router. Il router riceve una richiesta proveniente da Internet e non sa a quale IP interno inviarlo, quindi la getta via.

Il punchthrough NAT funziona facendo in modo che entrambi i peer inviino la richiesta in uscita l'un l'altro, il router quindi "sa" che i pacchetti diretti al proprio IP pubblico sulla porta specificata dovrebbero passare al computer specificato.

Quindi, è necessario connettere entrambi i computer a un server esterno non dietro NAT e quindi utilizzare quel server esterno per coordinare il collegamento dei due peer oscurati NAT insieme (questa è la cosa introduttiva peer che Lidgren ha integrato).

+0

Mi piacerebbe creare una chat Internet P2P in Delphi Xe8, applicazione multi-dispositivo. C'è un modo per usare Lidgren Network Library in Delphi XE? Se sì, puoi fornirmi il link per il download. Se NO, esiste una libreria di rete Lidgren simile per il mio Delphi XE8? –

0

So che questo è vecchio, ma ...

Lei non ha specificato che l'utilizzo del DiscoverKnownPeer() si è resa necessaria la configurazione. In caso contrario, è possibile impostare il peer-to-peer applicando le regole di port forwarding nel router.

Problemi correlati