Класс MessageInfo
- java.lang.Object
-
- com.sun.nio.sctp.MessageInfo
public abstract class MessageInfo extends Object
Класс MessageInfo предоставляет дополнительную вспомогательную информацию о сообщениях.
Принятые сообщения SCTP, возвращаемые методами SctpChannel.receive и SctpMultiChannel.receive, возвращают экземпляр MessageInfo, который можно использовать для запроса дополнительной информации о принятом сообщении. Отправляемые сообщения должны использовать один из методов createOutgoing для предоставления вспомогательных данных для отправляемого сообщения и могут использовать соответствующие методы установки, чтобы переопределить значения по умолчанию для unordered, timeToLive, complete и payloadProtocolID перед отправкой сообщения.
Для исходящих сообщений параметр timeToLive представляет собой временной интервал, в течение которого отправляющая сторона стека SCTP может истечь срок действия сообщения, если оно не было отправлено. Этот интервал указывает стеку, что сообщение больше не требуется для отправки после истечения интервала. Это не жёсткий таймаут и может быть повлияно тем, поддерживает ли ассоциация расширение частичной надёжности, RFC 3758.
Экземпляры MessageInfo не безопасны для использования несколькими одновременными потоками. Если MessageInfo будет использоваться более чем одним потоком, доступ к MessageInfo должен контролироваться соответствующей синхронизацией.
- Since:
- 1.7
Конструкторы
| Модификатор | Конструктор | Описание |
|---|---|---|
protected | MessageInfo() | Инициализирует новый экземпляр этого класса. |
Методы
| Модификатор и тип | Метод | Описание |
|---|---|---|
abstract SocketAddress | address() | Возвращает адрес сокета отправителя, если сообщение принято, в противном случае предпочтительный адрес назначения отправляемого сообщения. |
abstract Association | association() | Возвращает ассоциацию, на которой было получено сообщение, если сообщение принято, в противном случае ассоциацию, на которой сообщение должно быть отправлено. |
abstract int | bytes() | Возвращает количество прочитанных байтов для принятого сообщения. |
abstract MessageInfo | complete(boolean complete) | Устанавливает, является ли сообщение полным. |
static MessageInfo | createOutgoing(Association association,
SocketAddress address,
int streamNumber) | Создаёт экземпляр |
static MessageInfo | createOutgoing(SocketAddress address,
int streamNumber) | Создаёт экземпляр |
abstract boolean | isComplete() | Указывает, является ли сообщение полным. |
abstract boolean | isUnordered() | Указывает, является ли сообщение неупорядоченным. |
abstract int | payloadProtocolID() | Возвращает идентификатор протокола полезной нагрузки. |
abstract MessageInfo | payloadProtocolID(int ppid) | Устанавливает идентификатор протокола полезной нагрузки. |
abstract int | streamNumber() | Возвращает номер потока, на котором было получено сообщение, если сообщение получено, в противном случае номер потока, на котором сообщение должно быть отправлено. |
abstract MessageInfo | streamNumber(int streamNumber) | Устанавливает номер потока, на котором сообщение должно быть отправлено. |
abstract long | timeToLive() | Временной интервал, по истечении которого отправляющая сторона может истечь срок действия сообщения, если оно не было отправлено, или |
abstract MessageInfo | timeToLive(long millis) | Устанавливает временной интервал, по истечении которого отправляющая сторона может истечь срок действия сообщения, если оно не было отправлено. |
abstract MessageInfo | unordered(boolean unordered) | Устанавливает, является ли сообщение неупорядоченным. |
Методы, объявленные в классе java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait Конструкторы
MessageInfo
protected MessageInfo()
Инициализирует новый экземпляр этого класса.
Методы
createOutgoing
public static MessageInfo createOutgoing(SocketAddress address,
int streamNumber) Создаёт экземпляр MessageInfo подходящий для отправки сообщения.
Возвращаемый экземпляр будет иметь значение unordered установленное в false, значение timeToLive установленное в 0, значение complete установленное в true, и значение payloadProtocolID установленное в 0. Эти значения, если требуется, могут быть установлены через соответствующий метод setтера перед отправкой сообщения.
- Параметры:
-
address- Для подключённогоSctpChannelадрес представляет собой предпочтительный адрес узла для отправки сообщения, илиnullдля использования первичного адреса узла. ДляSctpMultiChannelадрес используется для определения ассоциации, или, если ассоциация с узлом по этому адресу отсутствует, создаётся новая. -
streamNumber- Номер потока, по которому будет отправлено сообщение. - Возвращает:
- Информацию об исходящем сообщении
- Исключение:
-
IllegalArgumentException- Если streamNumber отрицательный или больше65536
createOutgoing
public static MessageInfo createOutgoing(Association association,
SocketAddress address,
int streamNumber) Создаёт экземпляр MessageInfo подходящий для отправки сообщения заданной ассоциации. Обычно используется для SctpMultiChannel когда ассоциация уже установлена.
Возвращаемый экземпляр будет иметь значение unordered установленное в false, значение timeToLive установленное в 0, значение complete установленное в true, и значение payloadProtocolID установленное в 0. Эти значения, если требуется, могут быть установлены через соответствующий метод setтера перед отправкой сообщения.
- Параметры:
-
association- Ассоциация для отправки сообщения. -
address- Предпочитаемый адрес узла ассоциации для отправки сообщения, илиnullдля использования первичного адреса узла. -
streamNumber- Номер потока, по которому будет отправлено сообщение. - Возвращает:
- Информацию об исходящем сообщении
- Исключение:
-
IllegalArgumentException- Еслиassociationравноnull, или streamNumber отрицательный или больше65536
address
public abstract SocketAddress address()
Возвращает адрес сокета источника, если сообщение было получено, в противном случае предпочтительный адрес назначения сообщения для отправки.
- Возвращает:
- Адрес сокета, или
nullесли этот экземпляр предназначен для отправки сообщения и был создан без указания предпочтительного адреса назначения
association
public abstract Association association()
Возвращает ассоциацию, по которой было получено сообщение, если сообщение было получено, в противном случае ассоциацию, по которой сообщение будет отправлено.
- Возвращает:
- Ассоциацию, или
nullесли этот экземпляр предназначен для отправки сообщения и был создан с помощью статического фабричного методаcreateOutgoing(SocketAddress,int)
bytes
public abstract int bytes()
Возвращает количество прочитанных байт для полученного сообщения.
Этот метод применим только для полученных сообщений, для отправляемых сообщений он не имеет смысла.
- Возвращает:
- Количество прочитанных байт,
-1если канал являетсяSctpChannelи достиг конца потока, в противном случае0
isComplete
public abstract boolean isComplete()
Указывает, завершено ли сообщение.
Для полученных сообщений true указывает, что сообщение было полностью получено. Для отправляемых сообщений true указывает, что сообщение завершено, false указывает, что сообщение не завершено. Как канал отправки интерпретирует это значение зависит от значения параметра сокета SCTP_EXPLICIT_COMPLETE.
- Возвращает:
-
trueесли, и только если, сообщение завершено
complete
public abstract MessageInfo complete(boolean complete)
Устанавливает, завершено ли сообщение.
Для отправляемых сообщений true указывает, что сообщение завершено, false указывает, что сообщение не завершено. Как канал отправки интерпретирует это значение зависит от значения параметра сокета SCTP_EXPLICIT_COMPLETE.
- Параметры:
-
complete-trueесли, и только если, сообщение завершено - Возвращает:
- Этот MessageInfo
- См. также:
isComplete()
isUnordered
public abstract boolean isUnordered()
Указывает, является ли сообщение неупорядоченным. Для полученных сообщений true указывает, что сообщение было отправлено неупорядоченно. Для отправляемых сообщений true запрашивает неупорядоченную доставку сообщения, false указывает, что сообщение упорядочено.
- Возвращает:
-
trueесли сообщение неупорядоченное, в противном случаеfalse
unordered
public abstract MessageInfo unordered(boolean unordered)
Устанавливает, является ли сообщение неупорядоченным.
- Параметры:
-
unordered-trueзапрашивает неупорядоченную доставку сообщения,falseуказывает, что сообщение упорядочено. - Возвращает:
- Этот MessageInfo
- См. также:
isUnordered()
payloadProtocolID
public abstract int payloadProtocolID()
Возвращает идентификатор протокола полезной нагрузки.
Значение, указывающее тип данных протокола полезной нагрузки, передаваемых/получаемых. Это значение передаётся как непрозрачные данные SCTP. 0 указывает неуказанный идентификатор протокола полезной нагрузки.
- Возвращает:
- Идентификатор протокола полезной нагрузки
payloadProtocolID
public abstract MessageInfo payloadProtocolID(int ppid)
Устанавливает идентификатор протокола полезной нагрузки.
Значение, указывающее тип данных протокола полезной нагрузки, передаваемых. Это значение передаётся как непрозрачные данные SCTP.
- Параметры:
-
ppid- Идентификатор протокола полезной нагрузки, или0указывает неуказанный идентификатор протокола полезной нагрузки. - Возвращает:
- Этот MessageInfo
- См. также:
payloadProtocolID()
streamNumber
public abstract int streamNumber()
Возвращает номер потока, по которому было получено сообщение, если сообщение было получено, в противном случае номер потока, по которому сообщение будет отправлено.
- Возвращает:
- Номер потока
streamNumber
public abstract MessageInfo streamNumber(int streamNumber)
Устанавливает номер потока, по которому будет отправлено сообщение.
- Параметры:
-
streamNumber- Номер потока - Возвращает:
- Этот MessageInfo
- Исключение:
-
IllegalArgumentException- Если streamNumber отрицательный или больше65536
timeToLive
public abstract long timeToLive()
Период времени, в течение которого сторона отправки может истечь сообщение, если оно не было отправлено, или 0 чтобы указать, что таймаут не должен происходить. Это значение применимо только для отправляемых сообщений, для полученных сообщений оно не имеет смысла.
- Возвращает:
- Период времени в миллисекундах, или
0
timeToLive
public abstract MessageInfo timeToLive(long millis)
Устанавливает период времени, в течение которого сторона отправки может истечь сообщение, если оно не было отправлено.
- Параметры:
-
millis- Период времени в миллисекундах, или0чтобы указать, что таймаут не должен происходить - Возвращает:
- Этот MessageInfo
- См. также:
timeToLive()
© 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.
https://docs.oracle.com/en/java/javase/11/docs/api/jdk.sctp/com/sun/nio/sctp/MessageInfo.html