java. lecture 09. network programming

8
Сетевое программирование или как преодолеть одиночество

Upload: colriot

Post on 29-Jun-2015

938 views

Category:

Technology


3 download

TRANSCRIPT

Page 1: Java. Lecture 09. Network Programming

Сетевое программирование

или как преодолеть одиночество

Page 2: Java. Lecture 09. Network Programming

Программная Модель TCP/IP• TCP/IP позволяет устанавливать надёжные соединения типа

точка-точка между компьютерами в сети• Socket – конечная точка канала, по которому производится

обмен данными• Socket однозначно определяется парой IP-адрес:порт

• Основной примитив в Java – java.net.Socket• Средства для работы с сетью живут в пакете java.net.*

Page 3: Java. Lecture 09. Network Programming

Основные примитивы

ClientSocket• Используется на стороне

клиента• Устанавливает соединение с

соответствующим серверным сокетом

ServerSocket• Используется на стороне

сервера• accept() возвращает

Socket, через который идёт обмен данными с клиентом

Page 4: Java. Lecture 09. Network Programming

URL

Uniform Resource Locator (Identifier) – способ указания местонахождения ресурса

<scheme name>:<hierarchical part>[?<query>][#<fragment>]

http://mail.google.com/mail/#inboxxmpp:[email protected]?message=Hellotel:466453

Page 5: Java. Lecture 09. Network Programming

URLConnection

URLConnection – высокоуровневая абстракция над сокетами, позволяющая открыть соединение по URL

• Кроме стандартных протоколов (http, например) можно использовать самописные обработчики URL

Page 6: Java. Lecture 09. Network Programming

URLConnection

Чтение:• Создать URL• Получить URLConnection• Получить входной поток• Прочитать данные из потока• Закрыть поток ввода

Запись:• Создать URL• Получить URLConnection• Включить возможность

записи в URLConnection• Открыть соединение • Получить поток вывода• Записать данные в поток• Закрыть поток вывода

Page 7: Java. Lecture 09. Network Programming

Java NIO

Java New IO (New IO) – набор дополнительных инструментов для работы с интенсивными операциями ввода-вывода

• NIO Buffers• Channels• Selectors

Page 8: Java. Lecture 09. Network Programming

Apache MINA

Библиотека для ввода-вывода, реализовывающая шаблон Reactor• Универсальное API для любых транспортов: TCP/IP и UDP/IP

поверх Java NIO• Высокоуровневое (Byte Buffers) и низкоуровневое (Message

objects and codecs) API• Различные модели многопоточности• Есть возможность работать с потоками