java. lecture 09. network programming
TRANSCRIPT
Сетевое программирование
или как преодолеть одиночество
Программная Модель TCP/IP• TCP/IP позволяет устанавливать надёжные соединения типа
точка-точка между компьютерами в сети• Socket – конечная точка канала, по которому производится
обмен данными• Socket однозначно определяется парой IP-адрес:порт
• Основной примитив в Java – java.net.Socket• Средства для работы с сетью живут в пакете java.net.*
Основные примитивы
ClientSocket• Используется на стороне
клиента• Устанавливает соединение с
соответствующим серверным сокетом
ServerSocket• Используется на стороне
сервера• accept() возвращает
Socket, через который идёт обмен данными с клиентом
URL
Uniform Resource Locator (Identifier) – способ указания местонахождения ресурса
<scheme name>:<hierarchical part>[?<query>][#<fragment>]
http://mail.google.com/mail/#inboxxmpp:[email protected]?message=Hellotel:466453
URLConnection
URLConnection – высокоуровневая абстракция над сокетами, позволяющая открыть соединение по URL
• Кроме стандартных протоколов (http, например) можно использовать самописные обработчики URL
URLConnection
Чтение:• Создать URL• Получить URLConnection• Получить входной поток• Прочитать данные из потока• Закрыть поток ввода
Запись:• Создать URL• Получить URLConnection• Включить возможность
записи в URLConnection• Открыть соединение • Получить поток вывода• Записать данные в поток• Закрыть поток вывода
Java NIO
Java New IO (New IO) – набор дополнительных инструментов для работы с интенсивными операциями ввода-вывода
• NIO Buffers• Channels• Selectors
Apache MINA
Библиотека для ввода-вывода, реализовывающая шаблон Reactor• Универсальное API для любых транспортов: TCP/IP и UDP/IP
поверх Java NIO• Высокоуровневое (Byte Buffers) и низкоуровневое (Message
objects and codecs) API• Различные модели многопоточности• Есть возможность работать с потоками