- •Основы создания сетевых
- •Цели занятия
- •Модель OSI
- •Понятие порта
- •Модель «Клиент-сервер»
- •Модель «Клиент-сервер»
- •Модель «Клиент-сервер»
- •Пакет java.net
- •Адресация
- •Общая схема соединения
- •Класс Socket
- •Порядок работы с сокетом
- •Порядок работы с сокетом
- •Порядок работы с сокетом
- •Класс ServerSocket
- •Класс ServerSocket
- •Сервер параллельной
- •Дейтаграммы
- ••URL – адресUniformресурса в ИнтернетResource Locator
- •Uniform Resource Locator
- •Uniform Resource Locator
- •Uniform Resource Locator
- •Uniform Resource Locator
- •Литература
Дейтаграммы
21 • Дейтаграмма – независимое, самодостаточное сообщение, посылаемое по сети, чья доставка, время (порядок) доставки и содержимое не гарантируются
•Могут использоваться как для адресной, так и для широковещательной рассылки
•Экземпляры класса DatagramPacket являются прототипами дейтаграмм-сообщений
•Экземпляры класса DatagramSocket являются не ориентированными на соединение сокетами
Все права защищены. www.haulmont.ru info@haulmont.com |
© HAULMONT, 2013 |
•URL – адресUniformресурса в ИнтернетResource Locator
|
Имя протокола |
22 |
Протокол, используемый для связи |
|
Имя хоста Имя компьютера, на котором расположен ресурс
Имя файла Путь к файлу на компьютере
Номер порта Номер порта для соединения (необязателен, если порт не указан,
то используется значение по умолчанию для указанного протокола)
Ссылка Ссылка на именованный якорь (необязательна)
•Может быть абсолютным и относительным
•URL gamelan = new URL("http", "example.com", 80, "pages/page1.html");
•Для простого извлечения содержимого заданного ресурса достаточно
использовать метод openStream() класса URL
• Этот методВсе права защищенывозвращает. www.haulmontобъект.ru info@haulmontInputStream.com |
© HAULMONT, 2013 |
Uniform Resource Locator
23 Пример 3
import java.net.*; import java.io.*;
public class URLReader {
public static void main(String[] args) throws Exception
{
URL oracle = new URL("http://www.oracle.com/");
BufferedReader in = new BufferedReader( new InputStreamReader(
oracle.openStream())); String inputLine;
while ((inputLine = in.readLine()) != null) System.out.println(inputLine);
in.close();
}
}
Все права защищены. www.haulmont.ru info@haulmont.com |
© HAULMONT, 2013 |
Uniform Resource Locator
•Для получения дополнительной информации о ресурсе потребуется
24использовать класс URLConnection, который предоставляет гораздо больше средств управления доступом к Web-ресурсам
•Для получения объекта URLConnection нужно вызвать метод openConnection() класса URL
Пример 4
import java.net.*; import java.io.*;
public class URLConnectionReader {
public static void main(String[] args) throws Exception { URL oracle = new URL("http://www.oracle.com/"); URLConnection yc = oracle.openConnection();
BufferedReader in = new BufferedReader( new InputStreamReader(
yc.getInputStream())); String inputLine;
while ((inputLine = in.readLine()) != null) System.out.println(inputLine);
in.close();
}}
Все права защищены. www.haulmont.ru info@haulmont.com |
© HAULMONT, 2013 |
Uniform Resource Locator
•Существует несколько методов класса URLConnection,
25предназаначеннных для указания свойств соединения ещё до подключения к серверу
•По умолчанию соединение получает входной поток для чтения, но не получает выходной поток для записи
•Для получения выходного потока нужно вызвать метод setDoOutput(true)
Пример 5
import java.io.*; import java.net.*; public class Reverse {
public static void main(String[] args) throws Exception { if (args.length != 2) {
System.err.println("Usage: java Reverse " + " string_to_reverse"); System.exit(1);
}
Все права защищены. www.haulmont.ru info@haulmont.com |
© HAULMONT, 2013 |
Uniform Resource Locator
26 String stringToReverse = URLEncoder.encode(args[1], "UTF-8"); URL url = new URL(args[0]);
URLConnection connection = url.openConnection(); connection.setDoOutput(true);
OutputStreamWriter out = new
OutputStreamWriter( connection.getOutputStream()); out.write("string=" + stringToReverse);
out.close();
BufferedReader in = new BufferedReader( new InputStreamReader(connection.getInputStream()));
String decodedString;
while ((decodedString = in.readLine()) != null) { System.out.println(decodedString);
}
in.close();
}
}
Все права защищены. www.haulmont.ru info@haulmont.com |
© HAULMONT, 2013 |
Литература
27• Вязовик Н.А. Программирование на Java – М.: Интернет-Ун-т Информ. Технологий, 2003
•http://docs.oracle.com/javase/tutorial/networking/
•http://download.java.net/jdk8/docs/technotes/guide
s/net/overview/overview.html
Все права защищены. www.haulmont.ru info@haulmont.com |
© HAULMONT, 2013 |