Klient -> Server -> Klient ?? Problem...

0

zrobilem program serwer-client ale nie bylem w stanie laczyc sie z ludzmi za NATEM... :( poszperalem w internecie i znalazlem cos takiego http://lite.econtrol.pl/ . Program dziala na zasadzie Klient-Serwer-Klient. I co najlepsze bez problemu laczy sie z ludzmi poza Natem. Moje pytanie jest nastepujace: Na jakiej zasadzie to dziala ? i co trzeba zrobic, aby przelozyc to na delphi ? :)

0

Prosta zasada. Goście postawili serwer dostępny dla każdego, serwer ma adres publiczny. Z tym serwerem może się połączyć każdy. Jak wiadomo, dwie osoby siedzące za natem nie mogą się połączyć ze sobą bezpośrednio. Ale każda może się połączyć z publicznym serwerem. Serwer pełni rolę pośrednika. Finito.

Jak to przetłumaczyć na Delphi? Za cholerę pojęcia nie mam, ja tu tylko sprzątam ;)

0

hmm... to moze mozna by sprobowac zalozyc jakies konto www. wsadzic tam program(serwer). Klient na innym kompie laczyl by sie z programem ktory jest na serwerze. Ja z moim glownym klientem polaczyl bym sie tez z tym serwerem, a ten juz by wysylal/odbieral dane miedzy nami... ? he ? co o tym sadzicie ?

0

Hmmm, na darmowych kontach to raczej nie masz uprawnień do uruchomienia własnego programu jako usługi. Chyba wchodzi w grę tylko skrypt php/cgi, który odbierałby i wysyłał dane via http.

0

to nie dobrze... :( hmmm... a moze sa jakies inne sposoby na obejscie bariery ? gdy ktos jest poza natem ? w delphi ?

0

ktos zna jakies rozwiazanie ? :)

0

http://alumnus.caltech.edu/~dank/peer-nat.html
wygląda to tak (dwóch klientów, oboje za własnymi NATami)

  1. klient 1 wysyła do serwera pakiet UDP ze swoim adresem prywatnym i publicznym za NATem
  2. klient 2 wysyła do serwera pakiet UDP ze swoim adresem prywatnym i publicznym za NATem
  3. serwer wysyła adres 1 do 2 i 2 do 1
  4. od teraz oba mogą się połączyć i "gadać" ze sobą będąc za NATem bez pośrednictwa serwera.

Jednak do samego nawiązania połączenia potrzebny jest póbliczny adres IP, jednak tutaj informacja może być wymieniana przez pliki textowe czy bazę danych, które są na darmowych serwerach

Jeszcze jedna ważna sprawa - protokuł UDP NIE zapewnia (jak to ma miejsce w przypadku TCP) poprawności przesyłanych danych

0

nie mam problemu z IP, poniewaz znam wszystkie (to moje komputery tylko w innych domach). Jeden z nich ma zewnetrzne IP.

Misiek troche taki kombinowany ten sposob. No i problem wlasnie z przesylaniem informacji za pomoca UDP miedzy programami. Wiec tak czarno to widze...

Moze jakies inne pomysly ? :>

0

nie jest mi znany inny sposób oprócz dodatkowego kompa z publicznym ip

BTW jak jeden komp ma zewnętrzne IP to gdzie problem???

0

Wlasnie nie wiem dlaczego mam problem majac zewnetrzne IP. Nie raz nie jestem w stanie sie polaczyc... z neostrada tez czasem jest problem sie polaczyc... a chcialem zniwelowac ten problem...

0

jeśli jesteś pewny, że

  1. IP masz dobre
  2. na kompie jest serwer odpalony
    to sprawdz
  3. firewall
  4. czy nic innego na tym samym porcie nie nasłuchuje (nie powinno się używać portów < 1024)
  5. spróbuj połączyć się przez telnet

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