Skocz do zawartości
  • 👋 Witaj na MPCForum!

    Przeglądasz forum jako gość, co oznacza, że wiele świetnych funkcji jest jeszcze przed Tobą! 😎

    • Pełny dostęp do działów i ukrytych treści
    • Możliwość pisania i odpowiadania w tematach
    • System prywatnych wiadomości
    • Zbieranie reputacji i rozwijanie swojego profilu
    • Członkostwo w jednej z największych społeczności graczy

    👉 Dołączenie zajmie Ci mniej niż minutę – a zyskasz znacznie więcej!

    Zarejestruj się teraz

Połączenie dwóch klientów


Rekomendowane odpowiedzi

Opublikowano

Cześć,

czy jest możliwe połączenie dwóch komputerów/urządzeń za pomocą protokołu UDP które na hostingu(przez system parujący) poznawały by swoje IPv4+MAC+maskę podsieci i następnie z pomocą tych danych wysyłali do siebie pakiety?

Czy pojedyńczy program może być wtedy serwerem(aby odbierać) i klientem(aby wysyłać)  ?

Opublikowano

Mógłbyś napisać co dokładnie chcesz osiągnąć? I co rozumiesz przez:

Czy pojedyńczy program może być wtedy serwerem(aby odbierać) i klientem(aby wysyłać)  ?

Każde z urządzeń będzie wysyłać i odbierać pakiety, ale nie rozumiem co przez to chciałeś napisać w kontekście UDP.

708121422388637873334.png

Opublikowano

Ok konkretniej chce aby dwa urządzenia (Android) połączyły się ze sobą i wymieniały pakietami.

Na jaki adres wtedy wysyłać pakiety? IPv6? 

A może macie jakieś dobre tutoriale? 

Opublikowano

Zerknę za chwilę dzięki za to :)

Jeszcze na marginesie jedno pytanie: czy jest możliwe połączenie między dwoma klientami w różnych sieciach przy założeniu że żaden z nich nie ma publicznego IP ? 

Opublikowano

@wojtek333314

 

Nie ma opcji, aby ktos nie mial "publicznego ip", kazdy z nas ma ale opcje moga byc rozne np:

- Stale ip dla modemu.

- Zmienne ip dla modemu

- Maski DHCP, 1 ip = Kilkadziesiat uzytkownikow :D

Opublikowano

Rozumiem, w takim razie załóżmy że adres jest schowany za NAT'em, wysyłam do niego pakiet, leci więc do NAT'a co on wtedy robi: wysyła pakiet do wszystkich hostów w sieci więc mój pakiet i tak dostanie sie do odpowiedniego hosta? 

Opublikowano

Potrzebujesz mieć jedynie adres IP urządzenia, z którym chcesz się połączyć, nie ważne czy to sieć lokalna czy publiczna.

Urządzenia łączą się z hostingiem ujawniając swoje adresy IP, a następnie hosting udostępnia te adresy urządzeniom, aby umożliwić im nawiązanie ze sobą połączenia (peer to peer).

Nie wnikam w takie rzeczy jak blokada portów i ich przekierowywanie, niezaufanych połączeń przychodzących, które routery/modemy domyślnie odrzucają.

Opublikowano

Ok opiszę co chcę zrobić, co wykminiłem a Wy powiedzcie mi czemu to nie działa :D

A więc mam dwa urządzenia android w oddzielnych sieciach (ukryte za nat'ami najpewniej jak wszystko). Chcę aby nawiązały połączenie UDP do siebie.

Wziąłem do pracy swój hosting który posiadam, wszak on może mi powiedzieć z jakiego IP łączą się do niego te dwa telefony czyli hosting pozna ich IP, zapisze do bazy danych, każdy z klientów może odpytać wtedy hosting czy już zna IP drugiego telefonu, jak tak to je pobiera i próbuje się do niego podłączyć przez UDP. 

Dlaczego to nie działa? 

 

@Jaca777 póki co nie próbuję z hole punching bo jest to dla mnie za trudne do ogarnięcia (zanim powiesz że wszystko jest w linku który mi dałeś :D)

Opublikowano

Dlaczego to nie działa?

Niestety nie jest to takie proste :x To co uzyskujesz to publiczne IP. Poza tym NATy nie są globalnie zestandaryzowane, działają różnie. Dlatego radzę Ci po prostu skorzystać z tej biblioteki którą Ci podałem.

708121422388637873334.png

Opublikowano

Jasny gwint teraz się pogubiłem ze wszystkim. Faktycznie złożony problem, dzięki @Jaca777 za bibliotekę, jak bym miał większego skill'a w samych sieciach to bym to uciągnął póki co nie da rady niestety jestem za głupi na obecnym poziomie.

 

Myślicie że dałoby się do takiego zadania (wykonanie ciągłej wymiany danych pomiędzy dwoma urządzeniami z systemem Android)wykorzystać hosting ze skryptami php? 

Zarchiwizowany

Ten temat przebywa obecnie w archiwum. Dodawanie nowych odpowiedzi zostało zablokowane.

×
×
  • Dodaj nową pozycję...