Spis treści

REVEAL theme=simple&disableLayout=0&transition=none&controls=1&show_progress_bar=1&build_all_lists=0&show_image_borders=0&horizontal_slide_level=2&enlarge_vertical_slide_headers=0&show_slide_details=1&open_in_new_window=1&size=1024×768

<html> <style type=„text/css”> p { text-align: left;} .reveal { font-size: 30px; } .reveal section { width: 96%; margin: 0 auto; } .reveal .slides { width: 60% !important; } .reveal ul, .reveal ol { margin-left: 1.5em; } .reveal pre code {

height: 100%;
max-height: 100%;
box-sizing: border-box; }

</style> </html>

Zajęcia 9. - Programowanie zorientowane sieciowo

Programowanie sieciowe

Dotychczas kod działał lokalnie; obecnie oprogramowanie często komunikuje się z innymi maszynami. Do komunikacji używa się głównie dwóch protokołów:

W programowaniu sieciowym wyróżnia się dwie główne koncepcje omawiane na zajęciach:

Komunikacja oparta na gniazdach (sockets)

W komunikacji opartej na gniazdach wykorzystuje się TCP. Jeden komputer działa jako serwer, drugi jako klient. Na serwerze tworzy się obiekt gniazda i zaczyna nasłuchiwać; klient zna adres i port serwera i łączy się z nim. Po nawiązaniu połączenia obie strony korzystają ze strumieni wejścia/wyjścia do wymiany danych.

Serwer - java.net.ServerSocket

Konstruktor: public ServerSocket(int port, int backlog, InetAddress address) throws IOException

Metody:

Klasa ''Socket'' (klient)

Konstruktory i metody:

''InetAddress''

Gniazda bezpołączeniowe (UDP)

UDP używa klas DatagramSocket i DatagramPacket.

DatagramSocket' - przykładowe konstruktory:

DatagramPacket - pakiet danych UDP:

Podstawowe metody:

Protokół HTTP i przetwarzanie URL

Wymiana informacji powszechnie odbywa się przez HTTP; popularny format wymiany danych to JSON.

Adres URL ma postać: protokol://host:port/ścieżka?parametry.

''java.net.URL'' - konstruktory i metody

''java.net.URLConnection'' - wybrane metody

Dokumentacja

Zestaw linków do dokumentacji używanych klas zamieszczono w materiałach zajęciowych (ServerSocket, Socket, InetAddress, DatagramSocket, DatagramPacket, URL, URLConnection).