Panel użytkownika
Nazwa użytkownika:
Hasło:
Nie masz jeszcze konta?

[SFML Network] Pisanie aplikacji Client-Client

Ostatnio zmodyfikowano 2013-12-18 22:53
Autor Wiadomość
domin568
Temat założony przez niniejszego użytkownika
[SFML Network] Pisanie aplikacji Client-Client
» 2013-11-08 18:36:54
Witam, przeszukałem całe forum w poszukiwaniu informacji o połączeniu Client-Client, jednak nic nie znalazłem, w google wpisując  "Client-Client coumunication sfml network (albo nawet bez sfml network)" nie znajduje żadnej porządnej informacji oprócz artykułu na wikipedii który opisuje DCC - Direct Client - Client, ostatnio pisząc moją pierwszą aplikacje czatu pewien użytkownik mi napisał żeby zrobić to w systemie - Client - Client, ale z braku wiedzy jak to zrobić muszę się was spytać o możliwe źródła (naprawdę szukałem dość długo informacji na ten temat) lub wasze sposoby pisania takich aplikacji, więc : Jak napisać aplikacje Client - Client (najlepiej w SFML Network) ?
P-95681
Savail
» 2013-11-08 18:49:48
W przypadku komunikacji client - client musisz rozważyć wiele czynników, np. to że 2 clienty będą za routerami. Najprostszym rozwiązaniem byłoby pewnie utworzenie serwera, który zachowywałby się jako pośrednik w nawiązaniu połączenia między dwoma clientami. Po nawiązaniu, clienci mogą bezpośrednio ze sobą się komunikować a serwer już dalej nie jest potrzebny. Tutaj jest to dobrze opisane jeśli znasz angielski: http://www.mindcontrol.org​/~hplus/nat-punch.html.
Są też rozwiązania bez używania serwera pośrednika ale raczej trudno dostępne bo i ja gdy szukałem kiedyś to się nie doszukałem za wiele ; d.
P-95683
domin568
Temat założony przez niniejszego użytkownika
» 2013-11-08 18:54:36
Co myślisz mówiąc "Za routerami" ??
P-95685
Savail
» 2013-11-08 19:05:02
Adres routera to adres zewnętrzny który jest widoczny dla wszystkich innych w internecie. Natomiast dla urządzeń podłączonych do jakiejś sieci router przypisuje wewnętrzny adres, znany tylko w obrębie danej sieci. I gdy client jest za routerem i wysyła prośbę o nawiązanie połączenia do drugiego clienta za routerem, to jeśli pakiet dotrze do routera, to i tak router nie wie komu ma go dalej przekazać. Sam adres zewnętrzny routera to za mało informacji, aby był w stanie określić któremu komputerowi w sieci wewnętrznej przekazać dalej ten pakiet.
P-95687
kubawal
» 2013-11-08 20:13:00
Poszukaj coś o sieciach p2p (peer-to-peer)

Frazy, które należy wpisać w wyszukiwarkę google:
P-95691
DejaVu
» 2013-11-19 04:10:20
1. Utwórz serwer UDP.
2. Połącz klienta nr 1 do serwera UDP i prześlij do serwera otwarty port UDP.
3. Z drugim klientem zrób to samo co z pierwszym.
4. Prześlij do klienta nr 2 otwarty port UDP klienta nr 1 (oraz adres IP).
5. Prześlij do klienta nr 1 otwarty port UDP klienta nr 2 (oraz adres IP).
6. Wysyłaj klientem nr 2 pakiety na adres i port jaki otrzymałeś od serwera.
7. Wysyłaj klientem nr 1 pakiety na adres i port jaki otrzymałeś od serwera.

Teoretycznie powinno zadziałać, być może nawet zadziała komunikacja dla komputerów za NAT-em (choć tego pewien nie jestem). Serwer oczywiście musi być widoczny.

PS. Jeżeli nie masz doświadczenia w pisaniu komunikacji sieciowej to nawet nie pchaj się na tą drogę, tylko naucz się najpierw pisać aplikacje sieciowe w modelu klient-serwer. Tam też jest potrzebna cała masa wiedzy oraz potrzeba dużego nakładu pracy, aby coś sensownego zrobić. Komunikacja klient-klient to dodatkowy problem i tym samym większa złożoność problemu.
P-96649
domin568
Temat założony przez niniejszego użytkownika
» 2013-11-23 21:56:43
Co masz na myśli mówiąc "Server musi być widoczny " ??
P-97214
DejaVu
» 2013-11-24 14:32:48
Serwer widoczny = serwer, który jest globalnie widoczny w sieci do którego można się dostać przez określony port komunikacyjny, tj. musi być komputer pełniący rolę serwera do którego będą łączyli się klienci i serwer będzie 'rozdawał' klientom bezpośrednią informację na jakich portach dany klient może komunikować się z innymi klientami przy pomocy protokołu UDP.
P-97294
« 1 » 2
  Strona 1 z 2 Następna strona