• Nie Znaleziono Wyników

1 Interfejs sieciowy Java Porty Dostarczanie pakietówAplikacje serwerowe Podstawy programowania sieciowego Warstwa transportowa

N/A
N/A
Protected

Academic year: 2021

Share "1 Interfejs sieciowy Java Porty Dostarczanie pakietówAplikacje serwerowe Podstawy programowania sieciowego Warstwa transportowa"

Copied!
3
0
0

Pełen tekst

(1)

1 Podstawy programowania

sieciowego

TCP/IP

Warstwa transportowa

TCP – protokółłłł połąłąłąłączeniowy gwarantująąąący niezawodne przekazywanie danych mięęędzy ę dwoma komputerami.

UDP – protokół bezpołączeniowy dostarczający usługi zawodnego przekazywania niezaleŜnych pakietów danych między dwoma komputerami. Brak pewności dostarczenia pakietu jak równieŜ ich kolejności.

Porty

• Z reguły komputer posiada jedno fizyczne połączenie z siecią (adapter sieciowy) i wszystkie dane skierowane do tego komputera napływają przez to połączenie.

Dane te są jednak z reguły przeznaczone dla róŜnych programów działających na tym komputerze. Adresowanie danych do konkretnej aplikacji odbywa się za pomocą portów.

Dostarczanie pakietów

Aplikacje serwerowe

• Aplikacje serwerowe wiąŜą swoje punkty przyłączeniowe do określonych portów.

Numery portów od 0 do 1023 są zarezerwowane dla “dobrze zdefiniowanych usług” (well-known service) takich jak np. HTTP lub FTP. We własnych programach nie naleŜy uŜywać tych portów

Interfejs sieciowy Java

• Interfejs sieciowy w Javie obejmuje następujące klasy z pakietu java.net: URL, URLConnection, Socket, and

ServerSocket (TCP),

DatagramSocket, MulticastSocket (UDP)

(2)

2 URL Uniform Resource Locator

• nazwę (adres) komputera w sieci,

• nazwę pliku,

• numer portu

• i ewentualnie odnośnik do oznaczonej pozycji w pliku.

Obiekt URL

• URL gamelan = new URL("http://www.gamelan.com/");

• URL gamelan = new URL("http", "www.gamelan.com", 80,

"pages/Gamelan.network.html");

Operacje na obiekcie URL

• Metoda openStream()obiektu URL zwraca strumień InputStream poprzez który moŜna odczytywać zawartość dokumentu wskazywanego przez ten obiekt. Jeśli interakcja nie ogranicza się jedynie do odczytu dokumentu naleŜy wywołać metodę openConnection(), którazwraca obiekt typu URLConnection

Przykłłłład

• Fragment kodu współpracujący z serwletem realizującym pomiar napięcia stałego na wyjściu obiektu badanego przy zadeklarowanym napięciu wejściowym. Serwlet wykonuje trzy operacje:

open – która rezerwuje źródło napięcia stałego i multimetr, close- która zwalnia te zasoby oraz doOneCycle – która ustala na wyjściu źródła podane napięcie, mierzy odpowiedź badanego układu za pomocą multimetru oraz zwraca zmierzone wartości napięcia wejściowego i wyjściowego.

Kod

URL url = new

URL(“http://pc7e1.kmeif.pwr.wroc.pl:8080/examples/s ervlet/ExperimentServlet”);

URLConnection connection = url.openConnection();

connection.setDoOutput(true);

PrintWriter out = new

PrintWriter(connection.getOutputStream());

out.print(”doOneCycle” + 11.35); out.close();

in = new BufferedReader(new InputStreamReader(

connection.getInputStream()));

String uis = in.getLine();

...

Gniazdka (sockets)

• Klasy URLi URLConnection dostarczają wygodnych wysokopoziomowych mechanizmów komunikacyjnych, jednak w wielu

zastosowaniach zachodzi potrzeba programowania na poziomie gniazdek tj.

podstawowych usług warstwy transportowej.

Gniazdko jest końcowym punktem

przyłączeniowym umoŜliwiającym dwukierunkową komunikację. Większość aplikacji sieciowych jest zgodna z modelem klient-serwer.

(3)

3 Połą łą łą łączenie client-server

• Serwer akceptuje połączenie, tworzy nowe gniazdko i wiąŜe go z innym portem aby mógł kontynuować nasłuch na gniazdku oryginalnym i jednocześnie prowadzić interakcje z klientem

Echo klient

Socket echoSocket = null;

PrintWriter out = null;

BufferedReader in = null;

try {

echoSocket = new Socket(„serwerAddress", 7);

out = new PrintWriter(echoSocket.getOutputStream(), true);

in = new BufferedReader(new InputStreamReader(

echoSocket.getInputStream()));

} catch (UnknownHostException e) {System.exit(1); } catch (IOException e) { System.exit(1); }

Echo klient c.d.

BufferedReader stdIn = new BufferedReader(

new InputStreamReader(System.in));

String userInput;

while ((userInput = stdIn.readLine()) != null) { out.println(userInput);

System.out.println("echo: " + in.readLine());

}

out.close(); in.close(); stdIn.close();

echoSocket.close(); }

Aplikacja serwerowa

• Aplikacja serwerowa otwiera gniazdko i wiąŜe go z określonym portem TCP a następnie oczekuje na zgłoszenia klientów. Aplikacja klienta znając adres i port serwera nawiązuje połączenie.

Inne sieciowe API

JavaTMRemote Method Invocation (Java RMI) ~ RPC

JavaTMIDL technology ("Java IDL") (CORBA)

Java Remote Method Invocation over Internet Inter- ORB Protocol technology ("RMI-IIOP")

Cytaty

Powiązane dokumenty

Krawędzi, które łączą wierzchołki należące do różnych kawałków, jest dokładnie n k − 1, a ponieważ poddrzewa połączone takimi krawędziami składają się z

Wskaż urządzenie, które należy wykorzystać, aby podłączyć dwa komputery do sieci Internet z dostępem przez sieć lokalną Ethernet, w której mamy do dyspozycji tylko jeden

 Przy implementacji sondy do przełyku wymioty wczorajszą Przy implementacji sondy do przełyku wymioty wczorajszą treścią pokarmową. Pierwsza próba

Młoda ko- bieta, która znalazła się pod moją kołdrą i trzymała mnie w objęciach, starała się przecisnąć niżej.... Robiła to bezszelestnie i

Zegarek Basi spieszy pięć minut, a zegarek Tomka spóźnia się pięć minut. Napisz

Zdarzyło mi się przepisać zadanie domowe od kolegi/koleżanki i skłamać, że jest moje.. Pisząc pracę na podstawie cudzych materiałów, zawsze stosuję przypisy oraz

Materiał edukacyjny wytworzony w ramach projektu „Scholaris – portal wiedzy dla nauczycieli"1. współfinansowanego przez Unię Europejską w ramach Europejskiego

Uczniowie wyjaśniają znaczenia słów związanych z tajemnicą, czyli tabu, problemy, o których niewygodnie jest mówić, są często przemilczane; zakazany owoc, czyli symbol tego,