Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Haulmont-презентации Java / Haulmont. java_se_10.ppt
Скачиваний:
31
Добавлен:
16.03.2015
Размер:
687.62 Кб
Скачать

Пакет java.net

11 • Адресация

Установление TCP-соединения

Передача/прием дейтаграмм через UDP

Обнаружение/идентификация сетевых ресурсов

Безопасность: авторизация/права доступа

Все права защищены. www.haulmont.ru info@haulmont.com

© HAULMONT, 2013

Адресация

12 • Класс InetAddress является интернет-адресом, или IP

Экземпляры этого класса создаются не с помощью конструкторов, а с помощью статических методов:

InetAddress getLocalHost() – возвращает IP-адрес машины, на которой исполняется Java-программа

InetAddress getByName(String name) – возвращает адрес сервера, чье имя передается в качестве параметра. Это может быть как DNS-имя, так и числовой IP, записанный в виде текста, например, "67.11.12.101"

InetAddress[] getAllByName(String name) – определяет все IP- адреса указанного сервера

Класс Inet4Address служит для описания адреса, состоящего из 4 байтов, с помощью класса Inet6Address описывается адрес, состоящий из 16 байтов

Начиная с JDK 1.4. существует класс InetSocketAddress(String hostname, int port), который создаёт объект адреса для указанного узла и порта

Все права защищены. www.haulmont.ru info@haulmont.com

© HAULMONT, 2013

Общая схема соединения

13

Все права защищены. www.haulmont.ru info@haulmont.com

© HAULMONT, 2013

Класс Socket

14 Реализует клиентский сокет и его функции

Конструкторы

Socket()

Socket(InetAddress address, int port)

Socket(InetAddress address, int port, InetAddress localAddr, int localPort)

Socket(String host, int port)

Socket(String host, int port, InetAddress localAddr, int localPort)

Методы

void close() – закрывает используемый сокет

InputStream getInputStream() – возвращает поток, позволяющий читать данные, переданные по сети

OutputStream getOutputStream() – возвращает поток, позволяющий передавать данные по сети

И т.д.

Все права защищены. www.haulmont.ru info@haulmont.com

© HAULMONT, 2013

Порядок работы с сокетом

клиента

15• Открытие сокета

Открытие потока ввода и/или потока вывода для сокета

Чтение и запись в потоки согласно установленному протоколу общения с сервером

Закрытие потоков ввода-вывода

Закрытие сокета

Все права защищены. www.haulmont.ru info@haulmont.com

© HAULMONT, 2013

Порядок работы с сокетом

клиента

16 Пример 1

import java.io.*; import java.net.*;

public class EchoClient {

public static void main(String[] args) throws IOException { Socket echoSocket = null;

PrintWriter out = null; BufferedReader in = null; try {

echoSocket = new Socket("taranis", 7);

out = new PrintWriter(echoSocket.getOutputStream(), true);

in = new BufferedReader(new

InputStreamReader( echoSocket.getInputStream())); } catch (UnknownHostException e) {

System.err.println("Don't know about host: taranis."); System.exit(1);

}

Все права защищены. www.haulmont.ru info@haulmont.com

© HAULMONT, 2013

 

Порядок работы с сокетом

17 catch (IOException e) {клиента

System.err.println("Couldn't get I/O for the connection to: taranis."); System.exit(1);

}

BufferedReader stdIn = new BufferedReader(

new InputStreamReader(System.in));

String userInput;

while ((userInput = stdIn.readLine()) != null) { out.println(userInput); System.out.println("echo: " + in.readLine());

}

out.close();

in.close();

stdIn.close();

echoSocket.close();

}

}

Все права защищены. www.haulmont.ru info@haulmont.com

© HAULMONT, 2013

Класс ServerSocket

18Реализует серверный сокет и его функции

Конструкторы

ServerSocket()

ServerSocket(int port)

ServerSocket(int port, int backlog)

Методы

void close() – закрывает используемый сокет

Socket accept() – приостагавливает выполнение программы и ожидает обращения клиента

И т.д.

Все права защищены. www.haulmont.ru info@haulmont.com

© HAULMONT, 2013

Класс ServerSocket

19Пример 2 try {

serverSocket = new ServerSocket(4444);

}catch (IOException e) { System.out.println(

"Could not listen on port: 4444");

System.exit(-1);

}

Socket clientSocket = null; try {

clientSocket = serverSocket.accept(); } catch (IOException e) {

System.out.println("Accept failed: 4444"); System.exit(-1);

}

Все права защищены. www.haulmont.ru info@haulmont.com

© HAULMONT, 2013

Сервер параллельной

обработки запросов

20 • Установить соединение клиент-сервер

• Сервер параллельной обработки передает управление дочернему процессу

• Если в момент обработки запроса от первого клиента поступает запрос от второго, сервер параллельной обработки передает управление второму дочернему процессу

Все права защищены. www.haulmont.ru info@haulmont.com

© HAULMONT, 2013

Соседние файлы в папке Haulmont-презентации Java