Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:

СПО_1 / СПО / Sozdanie.setevyh.prilojenii.v.srede.Linux

.pdf
Скачиваний:
80
Добавлен:
11.04.2015
Размер:
2.94 Mб
Скачать

Общее описание: TCP клиент. Родительский класс: SocketStream Метод:

void Connect(HostAddress& Addr);

Подключается к узлу по указанному адресу

Генерируемое исключение:

NetConnectException

Datagram (класс)

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

Datagram(HostAddress& Me, ENetwork Network=eIPv4,

EProtocol Protocol=eDatagram);

Datagram(ENetwork Network=eIPv4, EProtocol Protocol=eDatagram);

Общее описание: UDP сокет. Родительский класс: Socket Методы:

void MinimizeDelay(bool Setting);

Запрашивает режим минимальной задержки пакета

void MaximizeThroughput(bool

Запрашивает режим максимальной пропускной способ

Setting);

ности

void MaximizeReliability(bool

Запрашивает режим максимальной надежности

Setting);

 

void MinimizeCost(bool Setting);

Запрашивает режим минимальной стоимости

voidPermitFragNegotiation(EFrag

Разрешает процедуру фрагментации

Setting);

 

Генерируемое исключение:

 

NetConfigException

 

Broadcast (класс)

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

Broadcast(HostAddress& Me);

Общее описание: широковещательный сокет, работающий в рамках подсети. Родительскийкласс:Datagram

Методы: (отсутствуют).

Генерируемое исключение:

NetConfigException .

Приложение Г. Вспомогательные классы

441

Ⱦɚɧɧɚɹ ɜɟɪɫɢɹ ɤɧɢɝɢ ɜɵɩɭɳɟɧɚ ɷɥɟɤɬɪɨɧɧɵɦ ɢɡɞɚɬɟɥɶɫɬɜɨɦ %RRNV VKRS Ɋɚɫɩɪɨɫɬɪɚɧɟɧɢɟ ɩɪɨɞɚɠɚ ɩɟɪɟɡɚɩɢɫɶ ɞɚɧɧɨɣ ɤɧɢɝɢ ɢɥɢ ɟɟ ɱɚɫɬɟɣ ɁȺɉɊȿɓȿɇɕ Ɉ ɜɫɟɯ ɧɚɪɭɲɟɧɢɹɯ ɩɪɨɫɶɛɚ ɫɨɨɛɳɚɬɶ ɩɨ ɚɞɪɟɫɭ piracy@books-shop.com

MessageGroup (класс)

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

MessageGroup(HostAddress& Me, ENetwork Network=eIPv4);

Общее описание: групповой сокет. Родительский класс: Datagram Методы;

Connect(HostAddress& Address);

Подключает сокет к адресу группового вещания

void Join(HostAddress& Address, int

Регистрирует сокет в адресной группе

IFIndex=0)

 

void Drop(HostAddress& Address);

Отменяет регистрацию сокета в адресной группе

Генерируемые исключения:

 

NetConfigException

 

NetConnectException

 

RangeException

 

Исключения Java

Ниже описаны все исключения, которые Java программа может сгенерировать при работе с сокетами.

lOException < ProtocolException

 

< UnknownHostException

 

< UnknownServiceExceptbn

< BindException

< SocketException

 

< ConnectException

 

< NoRouteToHostException

Рис. Г.З. Иерархия классов исключений в Java

java.io.IOException (класс)

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

IOException(); lOException(String msg);

Общее описание: исключение общего характера, произошедшее в процессе ввода вывода.

Родительский класс: Exception Дочерние исключения:

java.net.ProtocolException

Ошибка протокола в классе Socket

java.net.UnknownHostException

Имя узла не найдено в базе данных DNS сервера

java.net.unknownServiceException

Предпринята попытка вызова неподдерживаемого сер

 

виса

442

Часть V. Приложения

www.books-shop.com

java.net.SocketException (класс)

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

SocketException();

SocketException(String msg);

Общее описание: исключение, возникшее при попытке вызова функции bind(), connect(), listen() или accept(); генерируется классами Socket, Server Socket, DatagramSocket и MulticastSocket.

Родительский класс: IOExceptian Дочерние исключения:

java.net.BindException

Невозможно осуществить привязку к адресу/порту (как

 

правило, это означает, что он уже используется другим

 

процессом)

java.net.ConnectException

Узел недоступен, не найден, не отвечает или отсутству

 

ет процесс, прослушивающий запросы по указанному

 

порту

java.net.NoRouteToHostException

Маршрут к указанному узлу не может быть установлен

Служебные классы Java

Ниже описан ряд служебных классов, часто используемых при работе с соке тами.

java.net.DatagramPacket (класс)

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

DatagramPacket(byte[] buf, int Деп);

DatagramPacket(byte[] buf, int len, InetAddress addr, int port); DatagramPacket(byte[] buf, int Offset, int len);

DatagramPacket(byte[] buf,intOffset,intlen,InetAddressaddr,intport);

Общее описание: класс, управляющий массивами, в которые записываются принимаемые/отправляемые дейтаграммы.

Методы:

 

 

InetAddress getAddress();

Возвращает/задаетадрес отправителя/получате

void

setAddress(InetAddress addr);

ля пакета

 

byte [ ] getData();

Возвращает/задает массив данных дейтаграммы

void SetData(byte[] buf);

 

 

void SetData(byte[] buf, int offset, int

 

len);

 

 

int

getLength();

Возвращает/задает длину данных дейтаграммы

void setLength(int length);

 

 

Приложение Г. Вспомогательные классы

443

www.books-shop.com

int getOffset();

Воpвращает смещение данных в массиве, пред

 

назначенном для приёма или отправки

int getPort();

Возвращает/задает порт отпрабителя/получателя

void setPort(int port);

пакета

Генерируемые исключения: (отсутствуют).

java.net.InetAddress (класс)

Конструктор: (отсутствует).

Общее описание: класс, предназначенный для работы с адресами Internet; у клас са нет конструктора, а его объекты создаются с помощью статических методов.

Статические методы:

InetAddressgetByName(Stringhost);

Возвращает адрес узла, заданный по умолчанию

InetAddress getAHByName(String host);

Возвращает все адреса указанного узла

InetAddress getLocalHost();

Возвращает адрес локального узла

Методы:

 

String

getHostAddress();

Возвращает адрес узла в символьном виде

byte[]getAddress();

Возвращает адрес узла в виде массива байтов

boolean

isMulticastAddress();

Проверяет, попадает ли указанный адрес в диа

 

 

пазон групповых адресов

String

getHostName();

Возвращает имя узла

Генерируемое исключение: UnknownHostException

Классы ввода вывода Java

В Java имеется огромный набор классов, обрабатывающих различные аспекты ввода вывода. К сожалению, схема организации этих классов весьма сложна и запутанна. Ниже описаны классы, Имеющие отношение к сокетам.

Object < InputStream

< ByteArraylnputStream

< OutputStream

< ObjectlnputStream

< ByteArrayOutputStream

< Reader

< ObjectOutpufetrearn

< BufferedReader

< Writer

< PrintWriter

Рис. Г.4. Иерархия классов ввода!вывода в Java

444 Часть V. Приложения

www.books-shop.com

java.io.InputStream (абстрактный класс)

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

InputStream();

Общее описание: простейший входной поток. Родительский класс: Object

Методы:

int

available();

 

Возвращает число байтов, которые можно прочесть без блокиро

 

 

 

 

вания

void

close();

 

Закрывает канал

void mark(int readlimit);

Помечает текущую позицию потока для метода reset(), задавая

 

 

 

 

максимальный размер буфера упреждающего чтения

boolean

markSupportedf);

Определяет, поддерживает ли потоковый объект методы

 

 

 

 

mark()/reset()

int

read();

 

Читает одиночный байт из потока

int

read(byte []

arr);

Читает массив байтов из потока

int

read(byte []

arr, int

Читает массив байтов указанного размера, начиная с заданного

offset,

int length);

смещения

void

reset();

 

Возвращается к последней помеченной позиции

long

skip();

 

Пропускает ближайшие п байтов потока

Генерируемое исключение:

IOException

java.io.ByteArraylnputStream (класс)

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

ByteArrayInputStream(byte[] buf);

ByteArrayInputStream(byte[] buf, int offset, int length);

Общее описание: позволяет создавать виртуальный входной поток из массива байтов (например, из дейтаграммы).

Родительский класс: InputStream

Методы: (отсутствуют; много переопределенных методов класса InputStream). Генерируемые исключения: (отсутствуют).

java.io.ObjectlnputStream (класс)

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

ObjectInputstream(InputStream о);

Общее описание: с помощью этого класса можно читать передаваемые или со храненные объекты; объект InputStream создается в классе Socket.

Приложение Г. Вспомогательные классы

445

www.books-shop.com

Родительский класс: InputStream Методы:

int

available();

Возвращает число байтов, которые можно прочесть без бло

 

 

кирования

void

close();

Закрывает канал

void

defaultReadObject();

Считывает из потока не статические и не временные поля те

 

 

кущего объекта

int read();

Считывает байт или массив байтов указанного размера, на

int read(byte[] arr, int

чиная с заданного смещения; метод readFully() читает все

offset, int len);

байты, необходимые для заполнения массива, блокируя про

int

readFully(byte[] arr);

грамму при необходимости

int readFully(byte[] arr, int

 

offset, int len);

 

boolean readBooleanf);

Читает данные соответствующего типа

byte readByte();

 

char readChar();

 

double readDouble();

 

float readFloat();

 

int

readInt();

 

long readLong();

 

short readShort();

 

int

readUnsignedByte();

 

int

readUnsignedShort();

 

String readUTF();

Читает экземпляр класса Object; можно определить тип

Object readObject();

объекта и выполнить соответствующую операцию приведения

Генерируемые исключения:

IOException

ClassNotFoundException

NotActiveException

OptionalDataException

InvalidObjectException

SecurityException

StreamCorruptedException

java.io.OutputStream (абстрактный класс)

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

OutputStream();

Общее описание: простейший выходной поток. Родительский класс: Object

Методы:

446

Часть V. Приложения

www.books-shop.com

void close));

 

Закрывает канал

void

flush();

 

Выталкивает записанные данные из буферов

void write(byte b);

Записывает одиночный байт в поток

int

write(byte[]

arr);

Записывает массив байтов в поток

int

write(byte[]

arr, int

Записывает в поток массив байтов указанного размера, на

offset, int len);

 

чиная с заданного смещения

Генерируемое исключение:

IOException

java.io.ByteArrayOutputStream (класс)

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

ByteArrayOutputStreain();

ByteArrayOutputStream(int size);

Общее описание: позволяет записывать потоковые данные в массив байтов. Родительский класс: OutputStream

Методы:

void reset();

Очищает буферы и обнуляет внутренний массив

int

write(byte[] arr, int

Записывает массив байтов указанного размера, начиная с

offset,

int len);

заданного смещения

byte[]

toByteArray();

Возвращает массив потоковых данных

intsize();

Возвращает текущий размер буфера

String toString( String

Возвращает внутренние данные в текстовом представлении

encoder);

 

void write (int b);

Записывает одиночный байт

void

writeTo(OutputStream о);

Передает массив байтов через объект OutputStream'

Генерируемые исключения: (отсутствуют).

java.io.ObjectOutputStream (класс)

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

ObjectOutputStream(OutputStream о);

Общее описание: с помощью этого класса можно передавать и сохранять объ екты; объект OutputStream создается в классе Socket.

Родительский класс:OutputStream Методы:

void

close();

Закрывает канал

 

void

defaultwrite0bject();

Записывает в поток не статические и не временные поля те

 

 

кущего объекта; этот метод вызывается только в методе

 

Приложение Г. Вспомогательные классы

447

www.books-shop.com

 

 

 

 

writeObject() в процессе сериализации

int

flush();

 

 

Выталкивает записанные данные из буферов

int

reset();

 

 

Сбрасывает информацию, записанную в поток

void write(byte b);

 

Записывает одиночный байт или массив байтов указанного

int

write(byte[]

arr);

 

размера, начиная с заданной позиции

int

write(byte[]

arr,

int

 

offset, int len);

 

 

 

voidwriteBoolean(booleanb);

Записывает данные соответствующего типа

void writeByte(byte b);

 

void

writeBytes(String s);

 

void writeChar(int c);

 

 

void writeChars(String s);

 

voidwriteDouble(doubled);

 

void

writeFloat(float

f);

 

void

writeInt(int

i);

 

 

void writeLong(long l);

 

void writeShort(int us);

 

void writeUTF(String s);

Записывает буферизованные поля в поток

int

writeFields();

 

 

void writeObject(Object o);

Записывает экземпляр класса object

Генерируемые исключения:

IOException

SecurityException

java.io.BufferedReader(класс)

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

BufferedReader(Reader i);

BufferedReader(Reader i, int size);

Общее описание: обеспечивает буферизацию входного потока, благодаря чему Повышается производительность; обладает средствами распознавания строк тек ста; параметр size задает размер буфера.

Родительский класс: Reader Методы:

void

close();

Закрывает канал

void

mark(int readlimit);

Помечает текущую позицию потока, задавая максимальный

 

 

 

размер буфера упреждающего чтения

boolean

markSupported();

Проверяет, поддерживает ли потоковый объект методы

 

 

 

mark()/reset()

int read();

Читает одиночный байт из потока

int read(byte[] arr, int

Читает массив байтов указанного размера, начиная с задан

offset,

int length);

ной ПОЗИЦИИ

448

 

 

Часть V. Приложения

www.books-shop.com

String readLine();

Читает из потока строку текста (без символа конца строки)

boolean ready();

Возвращает true, если имеются данные для чтения

void

reset();

Возвращается к последней помеченной позиции

long

skip(long n);

Пропускает ближайшие n байтов потока

Генерируемое исключение:

IOException

java.io.PrintWriter (класс)

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

PrintWriter(Writer о);

PrintWriter(Writer о, boolean autoFlush);

PrintWriter(OutputStream о);

PrintWriter(OutputStream о, boolean autoFlush);

Общее описание: инкапсулирует выходной символьный поток; флаг autoFlush задает автоматическое выталкивание данных из буферов при вызове метода println().

Родительский класс: Writer Методы:

boolean checkError();

Выталкивает содержимое буфера и возвращает true, если

 

произошла ошибка

void close();

Закрывает канал

int flush();

Выталкивает записанные данные из буферов

void print(boolean b); void print(char c); void print(char[] s); void print(double d); void print(float f); void print(int i); void print(long 1); void print(Object obj); void print(String s);

void println();

void println(boolean b); void println(char c); void println(char[] s); void println(double d); void println(float f); void println(int i); void println(long 1); void println(0bject obj); void println(String s);

void write(byte b);

Записывает данные соответствующего типа; к объекту типа Object можно применить метод String.valueOf() для преобразования данных

Записывает данные соответствующего типа, добавляя в кон це символ новой строки; если установлена опция autoFlush, происходит запись содержимого буфера в поток

Записывает одиночный байт в поток

Приложение Г. Вспомогательные классы

449

www.books-shop.com

int

write(byte[]

arr);

Записывает массив символов в поток

int

write(byte[]

arr, int

Записывает в поток массив символов указанного размера,

offset, int len);

 

начиная с заданного смещения

int

write(String

s);

Записывает строку в поток

int

write(String

s, int offset,

Записывает в поток строку указанного размера, начиная с

int len);

 

заданного смещения

Генерируемые исключения:

IOException

SecurityException

Классы сокетов java

В Java имеется четыре класса сокетов IPv4: Socket, ServerSocket, DatagramSocket и MulticastSocket. Ниже описан каждый из них.

java.net.Socket (класс)

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

Socket(String host, int port); Socket(InetAddress addr, int port);

Socket(String host, int port, InetAddress lAddr, int lPort); Socket(InetAddress addr, int port, InetAddress lAddr, int lPort);

Общее описание: класс, описывающий базовый интерфейс сетевого взаимо действия (TCP).

Родительский класс: Object Методы:

void

close();

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

InetAddress

getInetAddress();

Возвращает адрес узла на противоположном конце со

 

 

 

единения

InputStream

getInputstream();

Возвращает потоковый объект InputStream, предна

 

 

 

значенный для приёма сообщений

boolean getKeepAlive();

Проверяет, активизирован ли режим поддержания ак

 

 

 

тивности соединения

void

setKeepAlive(boolean bn);

Удерживает соединение активным

InetAddress

getLocalAddress();

Возвращает локальный адрес, к которому подключен

 

 

 

сокет

int

getbocalPort();

Возвращает номер локального порта

OutputStream getOutputStream();

Возвращает потоковый объект OutputStream, предна

 

 

 

значенный для отправки сообщений

int

getPortf);

Возвращает номер порта однорангового компьютера

450

 

 

Часть V. Приложения

www.books-shop.com

Соседние файлы в папке СПО
  • #
    11.04.201527.19 Mб69Cpp4Unix.pdf
  • #
    11.04.201516.44 Mб52IP Arhitektura, protokoly, realizatsiya (vklyuchaya IP versii s IP Security).djvu
  • #
  • #
    11.04.201510.72 Mб51Стивенс. UNIX. Разработка сетевых приложений.djvu