[ krstak84 @ 23.04.2009. 05:16 ] @
Da li neko zna kako da uspostavim konekciju izmedju dva racunara na netu (znaci nije lokalna mreza), preko soketa a da racunari nemaju staticku IP adresu (recimo chat aplikacija)?

Znaci zanima me komunikacija dva racunara sa dinamickim IP adresama (chat aplikacija), i da li se to radi preko soketa ili ne?
[ IDE @ 23.04.2009. 08:53 ] @
Naravno da se radi upotrebom socket-a.

Pogledaj primjere sa Socket i ServerSocket klasama.

Takodje, prostudiraj i Observer pattern - moze ti pomoci prilikom kreiranja chat-a...

To je to, s tim da bi ti trebao jedan server ( racunar sa statickim IP-em ) na koji ce se ljudi kaciti i prijavljivati sa svojim IP-em ( opet na tvoju aplikaciju sa socketima )...
[ krstak84 @ 23.04.2009. 09:25 ] @
OK, znam ja da sve to moze, ali mene zanima da li moze da se uspostavi konekcija bez tog posrednika sa statickom IP adresom?

Znaci ja imam samo dva racunara sa dinamickim IP adresama i zelim da uspostavim kontakt, bez posrednika sa statickom IP adresom.

Da li je to moguce?
[ gajo2 @ 23.04.2009. 09:59 ] @
Moguce je ako znas adresu servera. Staticka IP adresa znaci samo da je to uvek ista adresa i ne moras da menjas, a dinamicka znaci da se ona s vremena na vreme menja pa moras da uspostavis novu konekciju na novi IP.
[ krstak84 @ 23.04.2009. 10:51 ] @
Adresu servera(provajdera preko koga pristupam netu) nalazim preko sajta http://www.whatismyip.com/ i tamo nadjem tu adresu, a moja IP adresa je 192.168.1.102, e sad kako ja kad pozivam ServerSocket to da podesim?, recimo imam serversku stranu:

Code:

ServerSocket soc;
Socket s;
try {
    soc = new ServerSocket(5455);
    s = soc.accept();
} catch (Exception ex) {}


i klijensku :

Code:

Socket socket;
try {
socket = new Socket(address, 5455);
} catch (Exception ex) {}


Promenljiva address je IP adresa servera, ali sta ja tu da stavim ako znam koja je adresa mog racunara (192.168.1.102) i staticka adresa mog provajdera (xxx.xxx.xxx.xxx) koju dobijem sa sajta www.whatismyip.com?

Probao sam prvo jednu, pa drugu, ali nece, kapiram da moram nekako da ih ukombinujem. Treba prvo da pristupim provajderu preko njegove adrese, pa posle mom racunaru preko moje adrese, ali kako to da izvedem?
[ gajo2 @ 23.04.2009. 11:18 ] @
Ovo bas i nema veze sa Javom pa bi bolje bilo da procitas nesto o mrezama...

Mislim da tvoja adresa nije 192.168.1.102 zato sto sve adrese koji pocinju sa 192.168.x.x su uglavnom lokalne mreze, npr. ako imas ruter onda ti ga ruter dodeli. Tu adresu vide samo lokalne masine. Tvoja prava adresa na Internetu je npr. 62.193.139.* (kao sto i pise na Elitesecurity-ju ispod imena).

Dakle, ako si ti server, onda napravis ServerSocket i bindujes se na neki port npr. 9876
Zatim, klijent masina se povezuje na tebe sa new Socket(62.193.139.33, 9876). Tvoj server acceptuje konekciju, dobijas input i output stream pa radis sta zelis. Bitno je takodje da imas otvoren port 9876. Ako imas ruter ili firewall onda ti je taj port 100% blokiran pa moras namestiti da imas otvoren pristup.

Najlaksi nacin za testiranje je da pokrenes svoju server aplikaciju, tako da se ona poveze na zeljeni port. Zatim sa klijentske masine koristis vec postojeci telnet, tj. napises u konzoli "telnet 62.193.139.54 9876" i ako uspes da se povezes, onda znaci da ti radi server, i firewall te ne blokira. Nakon toga slobodno pisi svoj klijent.

I nemoj zaboraviti da uvek zatvoris port po izlazku iz aplikacije, inace ces morati da menjas port svaki put, ili da restartujes kompjuter.
[ IDE @ 23.04.2009. 13:40 ] @
@krstak84: gajo2 ti je u gornjem postu sve fino objasnio...

Osvrnuo bih se samo na zadnju recenicu. Mislim da se port automatski oslobadja kada se zatvori aplikacija jer ga je ona i zauzela , pa se ne zahtjeva neka posebna akcija od programera za oslobadjanje porta...
[ krstak84 @ 23.04.2009. 15:07 ] @
Ok, kontam sve, ali kako ja da nadjem moju pravu IP adresu na netu?

Probao sam preko sajta www.whatismyip.com i on mi tamo pokaze tu adresu, ali kada klijent ukuca tu adresu da bi uspostavio sa mnom konekciju, ne moze da me nadje. Naravno ja sam pre nego sto je on pukusao da se poveze sa mnom, pokrenuo serverski kod i rekao mu moju stvarnu ip koju sam nasao preko onog sajta.

Ali ocigledno da nije to ta IP adresa, pa me zato zanima kako ja mogu da vidim moju stvarnu ip adresu.

Imam firewall, a kako onda da podesim da mi recimo port 7675 bude slobodan, tj. da ge ne blokira firewall. Koristim Eset.
[ gajo2 @ 23.04.2009. 17:56 ] @
E to vec pitaj na nekom drugom forumu, pre ces dobiti odgovor nego ovde. Ja znam samo Windows firewall i svoj ruter da namestim...