Wystawienie socketa na zewnątrz

0

Cześć,

niedawno zainteresowałem się tematem Socketów w javie. Natknąłem się na oficjalną dokumentację:
https://docs.oracle.com/javase/tutorial/networking/sockets/index.html

Mamy tutaj stworzone dwa proste sockety - serwer EchoServer oraz klient EchoClient. Zasada ich działania jest banalna - klient wysyła do serwera jakiś tekst, po czym serwer odsyła tę samą wiadomość (ja osobiście jeszcze u siebie delikatnie modyfikuję tę wiadomość tak aby mieć pewność, że faktycznie serwer ją przerobił). Lokalnie wszystko działa bez najmniejszych problemów, ale zacząłem się zastanawiać w jaki sposób mogę wystawić mój socket w sieci lokalnej lub w ogóle na cały świat? Tak aby np. mój znajomy z innego krańca polski mógł wysłać wiadomość do serwera i serwer mógł mu odpowiedzieć? Przeszukałem sieć pod hasłami typu "How to deploy java server socket?" i tym podobne, ale kompletnie nic na ten temat nie mogę znaleźć. Będę wdzięczny za wszelkie wskazówki.

1

Słuchasz na adresie IP 0.0.0.0 to znaczy że twój socket będzie dostępny na wszystkich interfejsach sieciowych komputera. jak chcesz wybrać tylko jeden z nich to użyj przypisanego do niego adresu IP.
Jeżeli masz publiczny adres IP to twój socket będzie wystawiony "na świat" i każdy z dowolnego miejsca na kuli ziemskiej będzie mógł się z nim połączyć. Przykład serwer DNS Google 8.8.8.8 dostępny dla każdego, możesz spróbować się z nim połączyć dig @8.8.8.8 ANY www.google.com.
Jeżeli chcesz mieć ładną domenę to musisz wykupić sobie wpis w serwerach DNS u jednego z dostawcy usług internetowych np. foo.pl. Wtedy najpierw przy użyciu protokołu DNS komputer zapyta o adresy IP do których nalezy się połączyć.

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