2010-09-24 12 views
8

Używam biblioteki sieciowej lidgen-3, aby spróbować utworzyć połączenie typu peer-to-peer. Jestem nowy w programowaniu sieciowym, dlatego używam tej biblioteki.Czy biblioteka sieciowa lidgren może łączyć się bezpośrednio z peer-to-peer, mając oba adresy IP:

Za pomocą funkcji DiscoverKnownPeer() mogłem połączyć się z moją siecią. To, co przeczytałem w Internecie, to to, że muszę wykonać NAT, który wymaga działającego serwera, który znajduje się poza routerem. Mam nadzieję na rozwiązanie, które nie wymaga tego dodatkowego serwera.

Jeśli mogę przechowywać oba adresy IP na serwerze sieciowym i utworzyć usługę internetową, aby przesłać adresy IP do poszczególnych klientów za pośrednictwem XML, czy będę w stanie utworzyć połączenie typu "każdy z każdym"?

Z góry dziękuję.

Odpowiedz

4

Nie, nie będzie w stanie nawiązać połączenie przez NAT bez zbornego serwerze

NAT stoi na twojej drodze, bo nawet jeśli znasz adres IP, który dostaje się tylko tak daleko, jak router. Router odbiera żądanie przychodzące z Internetu i nie wie, do którego wewnętrznego adresu IP go wysłać, więc go wyrzuca.

Przebijanie NAT działa, sprawiając, że obie rówieśniczki wysyłają do siebie wzajemnie żądania wychodzące, router następnie "wie", że pakiety skierowane na jego publiczny adres IP na danym porcie powinny przejść do danego komputera.

Musisz więc połączyć oba komputery z zewnętrznym serwerem, który nie ma translacji NAT, a następnie użyć tego zewnętrznego serwera do skoordynowania połączenia dwóch połączonych z NAT równorzędnych elementów równorzędnych (jest to element wprowadzający, który Lidgren wbudował).

+0

Chciałbym zrobić czat internetowy P2P w Delphi Xe8, aplikacja z wieloma urządzeniami. Czy istnieje sposób na użycie Biblioteki sieci Lidgren w Delphi XE? Jeśli tak, czy możesz podać mi link do pobrania. Jeśli NIE, czy istnieje podobna biblioteka sieci Lidgren dla mojej Delphi XE8? –

0

wiem, że to jest stary, ale ...

Nie określono, że stosując DiscoverKnownPeer() była konieczna w konfiguracji. Jeśli tak nie jest, możesz skonfigurować peer-to-peer, dostosowując reguły przekierowania portów do routera.

Powiązane problemy