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. ProgramoJacek 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. IdentyfikatorJacek Rumiński - Język JAVA - Rozdział 8 Powyższy program umożliwia pobranie źródła wskazanego plikuJacek Rumiński - Język JAVA - Rozdział 8 - nasłuch, - akceptacjaJacek 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 serweraJacek Rumiński - Język JAVA - Rozdział 8 }//od try catch (SocketExceptionJacek Rumiński - Język JAVA - Rozdział 8 serwera. Należy podkreślić, że biblioteki kodów konieczne dJacek Rumiński - Język JAVA - Rozdział 8 ■ zbiór metod (funkcji) umożliwiających wymianę danych iJacek Rumiński - Język JAVA - Rozdział 8 GenericServlet HttpServlet definiowane kolejno w dwóchJacek Rumiński - Język JAVA - Rozdział 8 infoSystemu -> Java_lnformacje_infoSystemu, (brak nazwyJacek Rumiński - Język JAVA - Rozdział 8 tego komentarza zawierającego nazwę klasy, w ciele którejJacek 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: %sJacek 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 zmiennJacek Rumiński - Język JAVA - Rozdział 8 Na zakończenie tej sekcji warto przedstawić w skrócie zagadwięcej podobnych podstron