8482348745

8482348745



Jacek Rumiński - Język JAVA - Rozdział 8

public static void main(StringQ args) {

Socket gniazdo;

String host = "localhost”;

if (args.length > 0) {

host = args[0]; //jeśli nie podano argumentu programu hostem bedzie komputer lokalny

}

for (int n = 0; n < 1024; n++) { //skanuj wszystkie porty "roota” tiy{

gniazdo = new Socket(host, n);

System.out.println("Znalazlem serwer na porcie" + n +" komputera:" + host);

}

catch (UnknownHostException e) {

System.err.println(e);

break; //koniec pętli for w razie nieznanego hosta

}

catch (IOException e) {

II System.err.println(e); - nie drukuj informacji o braku serwera } i

} } II koniec public class SkanerPortow

Program powyższy jest skanerem portów na których działają aplikacje (serwery). Skanowane porty 0-1023 należą do zakresu portów, które na maszynach UNIX-owych przynależą do administratora, to znaczy tylko root może uruchamiać serwery na tych portach. Odwzorowanie portów na aplikację można znaleźć w pliku ustawień /etc/services. Klasa Socket posiada wiele metod umożliwiających między innymi uzyskanie informacji związanych z obiektem tej klasy takich jak:

-    getLocalAddress() - zwraca lokalny adres, do którego dowiązane jest gniazdo,

-    getLocalPort() - zwraca lokalny port, do którego dowiązane jest gniazdo,

-    getlnetAddress() - zwraca zdalny adres, do którego gniazdo jest podłączone,

-    getPort() - zwraca zdalny numer portu, do którego gniazdo jest podłączone.

Kolejny przykład obrazuje wykorzystanie metody getLocalPort().

Przykład 8.7:

II SkanerPortow2.java:

importjava.net.*; import java.io.*;

public class SkanerPortow2 {

public static void main(StringO args) {

Socket gniazdo;

String host = "localhost";

8-16



Wyszukiwarka

Podobne podstrony:
Jacek Rumiński - Język JAVA - Rozdział 8Rozdział 8 Integracja Javy z innymi językami - JNI. Programo
Jacek Rumiński - Język JAVA - Rozdział 8 InetAddress. getAIIByName(String nazwa), InetAddress.
Jacek Rumiński - Język JAVA - Rozdział 8 identyfikator protokołu oraz nazwę zasobów. Identyfikator
Jacek Rumiński - Język JAVA - Rozdział 8 Powyższy program umożliwia pobranie źródła wskazanego pliku
Jacek Rumiński - Język JAVA - Rozdział 8 -    nasłuch, -    akceptacja
Jacek Rumiński - Język JAVA - Rozdział 8 if (args.length > 0) { host = args[0];} for (int n = 0;
Jacek Rumiński - Język JAVA - Rozdział 8 host = args[0];} try { gniazdo = new Socket(host,
Jacek Rumiński - Język JAVA - Rozdział 8 strumienWy.println(echo); //wyślij do serwera
Jacek Rumiński - Język JAVA - Rozdział 8 }//od try catch (SocketException
Jacek Rumiński - Język JAVA - Rozdział 8 serwera. Należy podkreślić, że biblioteki kodów konieczne d
Jacek Rumiński - Język JAVA - Rozdział 8 ■ zbiór metod (funkcji) umożliwiających wymianę danych i
Jacek Rumiński - Język JAVA - Rozdział 8 GenericServlet HttpServlet definiowane kolejno w dwóch
Jacek Rumiński - Język JAVA - Rozdział 8 infoSystemu -> Java_lnformacje_infoSystemu, (brak nazwy
Jacek Rumiński - Język JAVA - Rozdział 8 tego komentarza zawierającego nazwę klasy, w ciele której
Jacek Rumiński - Język JAVA - Rozdział 8 typ w Javie, typ rodzimy, rozmiar. typ dla C/C++
Jacek Rumiński - Język JAVA - Rozdział 8 printf("Obslugiwana aktualnie opcja to: %s

Jacek Rumiński - Język JAVA - Rozdział 8 gdzie podawany czas zależy oczywiście od ustawień
Jacek Rumiński - Język JAVA - Rozdział 8 jclass c = (env)->GetObjectClass(o); gdzie o jest zmienn
Jacek Rumiński - Język JAVA - Rozdział 8 Na zakończenie tej sekcji warto przedstawić w skrócie zagad

więcej podobnych podstron