Класс DatagramSocketImpl
- java.lang.Object
-
- java.net.DatagramSocketImpl
- Все реализуемые интерфейсы:
- SocketOptions
public abstract class DatagramSocketImpl extends Object implements SocketOptions
Базовый абстрактный класс реализации сокетов для работы с датаграммами и мультикастом.
- С момента:
- JDK1.1
Поля
| Модификатор и тип | Поле и описание |
|---|---|
protected FileDescriptor |
fd Объект дескриптора файла. |
protected int |
localPort Номер локального порта. |
Поля, унаследованные от интерфейса java.net.SocketOptions
IP_MULTICAST_IF, IP_MULTICAST_IF2, IP_MULTICAST_LOOP, IP_TOS, SO_BINDADDR, SO_BROADCAST, SO_KEEPALIVE, SO_LINGER, SO_OOBINLINE, SO_RCVBUF, SO_REUSEADDR, SO_SNDBUF, SO_TIMEOUT, TCP_NODELAY Конструкторы
| Конструктор и описание |
|---|
DatagramSocketImpl() |
Методы
| Модификатор и тип | Метод и описание |
|---|---|
protected abstract void |
bind(int lport,
InetAddress laddr) Связывает сокет для работы с датаграммами с локальным портом и адресом. |
protected abstract void |
close() Закрывает сокет. |
protected void |
connect(InetAddress address,
int port) Подключает сокет для работы с датаграммами к удалённому пункту назначения. |
protected abstract void |
create() Создаёт сокет для работы с датаграммами. |
protected void |
disconnect() Отключает сокет для работы с датаграммами от удалённого пункта назначения. |
protected FileDescriptor |
getFileDescriptor() Получает дескриптор файла сокета для работы с датаграммами. |
protected int |
getLocalPort() Получает локальный порт. |
protected abstract int |
getTimeToLive() Получение опции TTL (time-to-live). |
protected abstract byte |
getTTL() Устарело. используйте getTimeToLive вместо. |
protected abstract void |
join(InetAddress inetaddr) Подключается к группе мультикаста. |
protected abstract void |
joinGroup(SocketAddress mcastaddr,
NetworkInterface netIf) Подключается к группе мультикаста. |
protected abstract void |
leave(InetAddress inetaddr) Выходит из группы мультикаста. |
protected abstract void |
leaveGroup(SocketAddress mcastaddr,
NetworkInterface netIf) Выходит из группы мультикаста. |
protected abstract int |
peek(InetAddress i) Просмотр пакета для определения отправителя. |
protected abstract int |
peekData(DatagramPacket p) Просмотр пакета для определения отправителя. |
protected abstract void |
receive(DatagramPacket p) Приём пакета датаграммы. |
protected abstract void |
send(DatagramPacket p) Отправка пакета датаграммы. |
protected abstract void |
setTimeToLive(int ttl) Устанавливает опцию TTL (time-to-live). |
protected abstract void |
setTTL(byte ttl) Устарело. используйте setTimeToLive вместо. |
Методы, унаследованные от класса java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait Методы, унаследованные от интерфейса java.net.SocketOptions
getOption, setOption Поля
localPort
protected int localPort
Номер локального порта.
fd
protected FileDescriptor fd
Объект дескриптора файла.
Конструкторы
DatagramSocketImpl
public DatagramSocketImpl()
Методы
create
protected abstract void create()
throws SocketException Создаёт сокет для работы с датаграммами.
- Исключение:
-
SocketException- если произошла ошибка в базовом протоколе, например, ошибка TCP.
bind
protected abstract void bind(int lport,
InetAddress laddr)
throws SocketException Связывает сокет для работы с датаграммами с локальным портом и адресом.
- Параметры:
-
lport- локальный порт -
laddr- локальный адрес - Исключение:
-
SocketException- если произошла ошибка в базовом протоколе, например, ошибка TCP.
send
protected abstract void send(DatagramPacket p)
throws IOException Отправляет датаграмму. Датаграмма содержит данные и адрес назначения.
- Параметры:
-
p- датаграмма, подлежащая отправке. - Исключение:
-
IOException- если при отправке датаграммы произошла ошибка ввода-вывода. -
PortUnreachableException- может быть выброшено, если сокет подключён к недоступному в данный момент получателю. Обратите внимание, нет гарантии, что исключение будет выброшено.
connect
protected void connect(InetAddress address,
int port)
throws SocketException Подключает сокет для работы с датаграммами к удалённому получателю. Это связывает удалённый адрес с локальным сокетом, так что датаграммы могут отправляться только этому получателю и приниматься только от него. Это может быть переопределено для вызова системного подключения.
Если удалённый получатель, к которому подключён сокет, не существует или недоступен, и если для этого адреса получено сообщение ICMP об недоступности получателя, то последующий вызов send или receive может выбросить исключение PortUnreachableException. Обратите внимание, нет гарантии, что исключение будет выброшено.
- Параметры:
-
address- удалённый InetAddress для подключения -
port- номер удалённого порта - Исключение:
-
SocketException- может быть выброшено, если сокет не может быть подключён к удалённому получателю - С момента:
- 1.4
disconnect
protected void disconnect()
Отключает сокет для работы с датаграммами от удалённого получателя.
- С момента:
- 1.4
peek
protected abstract int peek(InetAddress i)
throws IOException Просмотреть пакет, чтобы узнать, от кого он. Обновляет указанный InetAddress до адреса, с которого пришёл пакет.
- Параметры:
-
i- объект InetAddress - Возвращает:
- номер порта, с которого пришёл пакет.
- Исключение:
-
IOException- если произошла ошибка ввода-вывода -
PortUnreachableException- может быть выброшено, если сокет подключён к недоступному в данный момент получателю. Обратите внимание, нет гарантии, что исключение будет выброшено.
peekData
protected abstract int peekData(DatagramPacket p)
throws IOException Просмотреть пакет, чтобы узнать, от кого он. Данные копируются в указанный DatagramPacket . Данные возвращаются, но не потребляются, так что последующая операция peekData/receive увидит те же данные.
- Параметры:
-
p- полученный пакет. - Возвращает:
- номер порта, с которого пришёл пакет.
- Исключение:
-
IOException- если произошла ошибка ввода-вывода -
PortUnreachableException- может быть выброшено, если сокет подключён к недоступному в данный момент получателю. Обратите внимание, нет гарантии, что исключение будет выброшено. - С момента:
- 1.4
receive
protected abstract void receive(DatagramPacket p)
throws IOException Принимает датаграмму.
- Параметры:
-
p- полученный пакет. - Исключение:
-
IOException- если при приёме датаграммы произошла ошибка ввода-вывода. -
PortUnreachableException- может быть выброшено, если сокет подключён к недоступному в данный момент получателю. Обратите внимание, нет гарантии, что исключение будет выброшено.
setTTL
@Deprecated
protected abstract void setTTL(byte ttl)
throws IOException Устарело. Используйте setTimeToLive вместо этого.
Устанавливает параметр TTL (время жизни).
- Параметры:
-
ttl- байт, определяющий значение TTL - Исключение:
-
IOException- если при установке параметра time-to-live произошла ошибка ввода-вывода. - См. также:
getTTL()
getTTL
@Deprecated
protected abstract byte getTTL()
throws IOException Устарело. Используйте getTimeToLive вместо этого.
Получает параметр TTL (время жизни).
- Возвращает:
- байт, представляющий значение TTL
- Исключение:
-
IOException- если при получении параметра time-to-live произошла ошибка ввода-вывода - См. также:
setTTL(byte)
setTimeToLive
protected abstract void setTimeToLive(int ttl)
throws IOException Устанавливает параметр TTL (время жизни).
- Параметры:
-
ttl- целое число, определяющее значение времени жизни - Исключение:
-
IOException- если при установке параметра time-to-live произошла ошибка ввода-вывода. - См. также:
getTimeToLive()
getTimeToLive
protected abstract int getTimeToLive()
throws IOException Получает параметр TTL (время жизни).
- Возвращает:
- целое число, представляющее значение времени жизни
- Исключение:
-
IOException- если при получении параметра time-to-live произошла ошибка ввода-вывода - См. также:
setTimeToLive(int)
join
protected abstract void join(InetAddress inetaddr)
throws IOException Присоединиться к многоадресной группе.
- Параметры:
-
inetaddr- многоадресный адрес для присоединения. - Исключение:
-
IOException- если при присоединении к многоадресной группе произошла ошибка ввода-вывода.
leave
protected abstract void leave(InetAddress inetaddr)
throws IOException Выйти из многоадресной группы.
- Параметры:
-
inetaddr- многоадресный адрес для выхода. - Исключение:
-
IOException- если при выходе из многоадресной группы произошла ошибка ввода-вывода.
joinGroup
protected abstract void joinGroup(SocketAddress mcastaddr,
NetworkInterface netIf)
throws IOException Присоединиться к многоадресной группе.
- Параметры:
-
mcastaddr- адрес для присоединения. -
netIf- указывает локальный интерфейс для приема многоадресных датаграмм - Исключение:
-
IOException- если при присоединении к многоадресной группе произошла ошибка ввода-вывода - С момента:
- 1.4
leaveGroup
protected abstract void leaveGroup(SocketAddress mcastaddr,
NetworkInterface netIf)
throws IOException Выйти из многоадресной группы.
- Параметры:
-
mcastaddr- адрес для выхода. -
netIf- указанный локальный интерфейс для выхода из группы - Исключение:
-
IOException- если при выходе из многоадресной группы произошла ошибка ввода-вывода - С момента:
- 1.4
close
protected abstract void close()
Закрыть сокет.
getLocalPort
protected int getLocalPort()
Получает локальный порт.
- Возвращает:
- целое число, представляющее значение локального порта
getFileDescriptor
protected FileDescriptor getFileDescriptor()
Получает дескриптор файла сокета для работы с датаграммами.
- Возвращает:
- объект, представляющий дескриптор файла сокета для работы с датаграммами
© 1993, 2020, Oracle and/or its affiliates. All rights reserved.
Documentation extracted from Debian's OpenJDK Development Kit package.
Licensed under the GNU General Public License, version 2, with the Classpath Exception.
Various third party code in OpenJDK is licensed under different licenses (see Debian package).
Java and OpenJDK are trademarks or registered trademarks of Oracle and/or its affiliates.