Содержание
- 2. План лекции Протоколы транспортного уровня Сокеты Использование сокетов на Java Класс URL и его использование
- 3. Модель OSI Уровень приложений (layer 7, data) Уровень представления (layer 6, data) Сеансовый уровень (layer 5,
- 4. Инкапсуляция пакета
- 5. Передача сообщения по сети Сообщение состоит из заголовка и данных Для каждого следующего уровня сообщение предыдущего
- 6. Transmission Control Protocol TCP – основанный на соединениях протокол, обеспечивающий надежную передачу данных между двумя компьютерами,
- 7. User Datagram Protocol UDP – не основанный на соединениях протокол, реализующий пересылку независимых пакетов данных, называемых
- 8. Основные характеристики TCP и UDP
- 9. Модель «Клиент-сервер» Порядок работы Каждая из сторон виртуального соединения называется «сокет» (socket) Приложение-сервер инициализируется при запуске
- 10. Понятие порта Компьютер (обычно) имеет только одно физическое соединение с сетью Соединение описывается, например, IP-адресом (32
- 11. Понятие порта Сокет привязывается к порту Порт описывается 16-битным числом Порты 0-1023 зарезервированы
- 12. Интерфейс сокетов В 80-ых годах американское правительственное агентство по поддержке исследовательских проектов (ARPA), финансировало реализацию протоколов
- 13. Связь с файловой системой Интерфейс сокетов – через системные вызовы UNIX Системные вызовы ввода-вывода UNIX выглядят
- 14. Проблемы сетевого ввода/вывода Модель клиент-сервер не соответствует системе ввода-вывода UNIX Не умеют устанавливать соединения Используется фиксированный
- 15. Абстракция сокета Сетевое соединение – это процесс передачи данных по сети между двумя компьютерами или процессами
- 16. Абстракция сокета Связь между двумя сокетами может быть ориентированной на соединение Связь между двумя сокетами может
- 17. Абстракция сокета
- 18. А что же на Java? Сокеты инкапсулированы в экземпляры специальных классов Все низкоуровневое взаимодействие скрыто от
- 19. Пакет java.net Адресация Установление TCP-соединения Передача/прием дейтаграмм через UDP Обнаружение/идентификация сетевых ресурсов Безопасность: авторизация / права
- 20. Адресация IP-адресация Адрес сокета
- 21. Методы класса InetAddress public static InetAddress getLocalHost(); создает объект класса для текущего локального узла public static
- 22. Общая схема соединения
- 23. Класс Socket Реализует клиентский сокет и его функции Конструкторы Socket() Socket(InetAddress address, int port) Socket(InetAddress address,
- 24. Порядок работы с клиентским сокетом Открытие сокета Открытие потока ввода и/или потока вывода для сокета Чтение
- 25. Пример клиента public class EchoClient { public static void main(String[] args) throws IOException { Socket echoSocket
- 26. Пример клиента ... BufferedReader stdIn = new BufferedReader(new InputStreamReader(System.in)); String userInput; while ((userInput = stdIn.readLine()) !=
- 27. Класс ServerSocket Реализует серверный сокет и его функции Конструкторы ServerSocket() ServerSocket(int port) ServerSocket(int port, int backlog)
- 28. Создание серверного сокета try { serverSocket = new ServerSocket(4444); } catch (IOException e) { System.out.println( "Could
- 29. Сервер параллельной обработки запросов Стадия 1 Установление соединения клиент-сервер Стадия 2 Сервер параллельной обработки передает управление
- 30. Дейтаграммы Дейтаграмма – независимое, самодостаточное сообщение, посылаемое по сети, чья доставка, время (порядок) доставки и содержимое
- 31. Класс DatagramPacket Экземпляры класса являются прототипами дейтаграмм-сообщений Конструкторы DatagramPacket(byte[] buf, int offset, int length, InetAddress address,
- 32. Класс DatagramSocket Экземпляры являются не ориентированными на соединение сокетами Конструкторы DatagramSocket() DatagramSocket(int port, InetAddress laddr) И
- 33. Передача дейтаграмм
- 34. Uniform Resource Locator URL – адрес ресурса в Интернет Имя протокола Протокол, используемый для связи Имя
- 35. Прямое чтение из URL import java.net.*; import java.io.*; public class URLReader { public static void main(String[]
- 36. Чтение из URL-соединения import java.net.*; import java.io.*; public class URLConnectionReader { public static void main(String[] args)
- 37. Запись в URL-соединение import java.io.*; import java.net.*; public class Reverse { public static void main(String[] args)
- 38. Запись в URL-соединение URLConnection connection = url.openConnection(); connection.setDoOutput(true); PrintWriter out = new PrintWriter( connection.getOutputStream()); out.println("string=" +
- 39. Спасибо за внимание!
- 41. Скачать презентацию