8482348746
Jacek Rumiński - Język JAVA - Rozdział 8
if (args.length > 0) { host = args[0];
}
for (int n = 0; n < 1024; n++) { tiy {
gniazdo = new Socket(host, n); int lokalPort = gniazdo.getLocalPort();
System.out.println("Numer lokalnego portu to:" + lokalPort); System.out.println("Znalazlem serwer na porcie ” + n + " komputera:" host);
}
catch (UnknownHostException e) {
System.err.println(e);
break;
}
catch (IOException e) {
//System.err.println(e);
}
}
}// koniec public class SkanerPortow2
Powiedziano wcześniej, że idea gniazd związana była ze stworzeniem strumienia, do którego można pisać, i z którego można czytać. Podstawową uniwersalną a zarazem abstrakcyjną klasą obsługującą strumień wejściowy jest klasa InputStream dla strumienia wyjściowego jest to OutputStream. Obydwie klasy są rozszerzane i stanowią podstawę przepływu danych (np. z i do pliku, z i do urządzenia, z i do sieci). W celu obsługi sieci w klasie Socket zdefiniowano metody zwracające obiekty klas InputStream oraz OutputStream, co umożliwia stworzenie strumieni do przesyłania danych przez sieć. Najczęściej wykorzystywane klasy nie abstrakcyjne to BufferedReader obsługujące czytanie danych przez bufor oraz PrintStream dla obsługi zapisu nie zwracająca wyjątku IOException. W celu zobrazowania pracy ze strumieniami posłużmy się przykładami. Pierwszy przykład prezentuje działanie typowe dla klienta, a więc czytanie ze strumienia.
Przykładowy program łączy się z serwerem czasu a następnie wyświetla ten czas na ekranie.
Przykład 8.8:
//Zegar.java:
importjava.net.*; import java.io.*;
public class Zegar {
public static void main(StringO args) {
Socket gniazdo;
String host = "localhost”;
BufferedReader strumienCzasu;
if (args.length > 0) {
8-17
Wyszukiwarka
Podobne podstrony:
Jacek Rumiński - Język JAVA - Rozdział 8 public static void main(StringQ args) { Socket gniazdo; StrJacek Rumiński - Język JAVA - Rozdział 8 host = args[0];} try { gniazdo = new Socket(host,Jacek Rumiński - Język JAVA - Rozdział 8 printf("Obslugiwana aktualnie opcja to: %sJacek 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 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 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