komunikacja serwer -> klient a router

0

witam wszystkich. ostatnio postanowiłem napisać aplikację nieco podobną do GG. tylko lepszą skromnie mówiąc. ale mniejsza o pomysł. wszystko już mam zaplanowane, tylko gryzie mnie jeden problem.

a mianowicie chodzi o komunikację serwer -> klient (komunikację klient -> serwer już mam).
udało mi się w routerze przekierować jakiś port, powiedzmy 543. przez ten port będzie się odbywać cały ruch do i z serwera.
wyobraźcie sobie taką sytuację. jest serwer(ja) w sieci lokalnej(LAN). serwer jest dostępny z zewnątrz dzięki przekierowaniu portu 543 przez router. jest też klient, komputer w sieci LAN, również za routerem ale bez przekierowania portu.

i tu moje pytanie. jak zrobić transfer danych z z serwera do klienta używając TCP lub UDP? można wprawdzie wysłać z klienta do serwera, bo jest odblokowany port z którego odbywa się komunikacja. ale z serwera do klienta jest to niemożliwe, ponieważ serwer wysyła coś za pomocą, np. UDP i co dalej? dociera do routera klienta a ten nie wie co z tym zrobić i nie przekazuje do komputera z klientem wewnątrz sieci.

proszę o poprawienie jeśli coś źle napisałem i szczerą (konstruktywną) krytykę.

0

przekierowania portów są konieczne dla serwera, klient sobie radzi bez niego

ale jest jeszcze Firewall czasem na routerze ( ja mam ) i są trzy podstawowe poziomy zabezpieczeń ( przynajmniej w moim =) )

a) żadnych blokad ( Firewall off )
b) blokada na ruch przychodzący ( to to chyba klient się nie podłączy )
c) blokada na ruch wychodzący ( a to że serwer nic nie wyśle chyba )

a jak już nawiążesz połączenie to chyba ( o ile się nie mylę ) w którą stronę idzie jest nie ważne ( klient tylko czyta to chyba się nazywa pasywny - http chyba tak ma, aktywny to że serwer coś wysyła )

0

@potwoor: czytasz to co piszesz? bo pieprzysz czasem takie bzdury, że aż żal. co ma firewall do problemu? chcesz mieć dużo postów, to powiedz, ustawimy ci licznik na dwa miliardy i nie będziesz musiał się produkować w każdym wątku.

@Sasser: jeśli oba komputery stoją za routerami, to mogą się komunikować tylko za pośrednictwem trzeciego albo poprzez przekierowanie portu. to, że klient jest za natem oznacza, że komunikacja może być nawiązana tylko przez niego (bo nie możesz zainicjować połączenia do komputera stojącego za natem). dlatego mogą do Ciebie przychodzić tylko dane na ten jeden port i nie możesz przekierować tego na jakiekolwiek inne porty. a przez to, że masz do dyspozycji tylko jeden port odpada komunikacja połączeniowa (bo połaczeniowa oznacza, że inni klienci będą blokować ten jeden jedyny port).
tak więc - to klient inicjuje połączenie, to klient puka co jakiś czas do serwera, żeby się dowiedzieć czy przyszły nowe wiadomości, to klient inicjuje ich pobieranie itp.

0
ŁF napisał(a)

chcesz mieć dużo postów, to powiedz, ustawimy ci licznik na dwa miliardy i nie będziesz musiał się produkować w każdym wątku.

Hehe :D
Ustawcie mu na o 20 mniejszy niż maksymalna wartość, to będzie się szczypał, żeby licznika nie przekręcić :D

0

@ŁF: czyli kwestia połączenia jest rozwiązana. teraz jeszcze trzeba rozwiązać problem z wiadomościami. skoro nie mogą być wysyłane aktywnie to trzeba coś zrobić by je można było pobierać. musiały by być łatwe do pobrania, ale zabezpieczone by nikt inny nie mógł ich odczytać. masz jakieś pomysły w związku z tym? bo ja praktycznie żadnych.

~TBSO: ty to wcale od @Potwoora lepszy nie jesteś. też byś tylko posty nabijał.
mały offtop - tak w ogóle, to chyba w następnym temacie zrobię ankietę pod tytułem "Czy wywalić użytkownika Potwoor_ z forum za spamowanie?". zobaczymy ile osób będzie za.

0

sasser - pieprzysz jak potłuczony.
Zanim zaczniesz bredzić - przeszukaj forum, sprawdź, a propos czego się wypowiadałem, a potem bredź dalej.

No i potem sprawdź, ile postów mi NALICZYŁ 4programmers (dla ułatwienia - to ta liczba, co się wyświetla po lewej pod nickiem :D)

0

grzecznie proszę, kończcie dyskusję.
napisałem, jak to zrobić. klient bezpołączeniowy puka co jakiś czas do serwera pytając, czy są dla niego jakieś wiadomości. co sekundę? pięć? dziesięć? ile nie wybierzesz, to albo w pewnym momencie zajedziesz sieć, albo będzie się czekać tydzień na odpowiedź. albo jedno i drugie. serwer tego typu na serwerze z jednym jedynym portem to niewypał. chyba, że będziesz mieć kilkunastu-kilkudziesięciu klientów.

0

@ŁF - dobra, nie ma sprawy. dyskusja zakończona. sorry że się zachowałem jak troll.
co do tematu i liczby klientów to masz 70% racji. mógłbym otworzyć więcej portów. nic mi przecież tego nie zabrania a i pożyteczne by było. chociaż w sumie to by mi mogło nieco neta zmulić. ale to nic. może uda mi się wciągnąć kolegę czyli jeden serwer więcej :).

~TBSO - daj spokój. chcesz się sprzeczać to załóż konto na 4p i się pokłócimy na PW.

1 użytkowników online, w tym zalogowanych: 0, gości: 1