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