Класс 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 |
Инициализирует новый экземпляр этого класса. |
Краткое описание методов
| Модификатор и тип | Метод | Описание |
|---|---|---|
abstract SocketAddress |
address() |
Возвращает адрес сокета источника, если сообщение было получено, в противном случае предпочтительный адрес назначения для отправляемого сообщения. |
abstract Association |
association() |
Возвращает ассоциацию, на которой было получено сообщение, если сообщение было получено, в противном случае ассоциацию, на которой сообщение должно быть отправлено. |
abstract int |
bytes() |
Возвращает количество прочитанных байтов для полученного сообщения. |
abstract MessageInfo |
complete |
Устанавливает, является ли сообщение полным. |
static MessageInfo |
createOutgoing |
Создаёт экземпляр MessageInfo, подходящий для использования при отправке сообщения заданной ассоциации. |
static MessageInfo |
createOutgoing |
Создаёт экземпляр MessageInfo, подходящий для использования при отправке сообщения. |
abstract boolean |
isComplete() |
Указывает, является ли сообщение полным. |
abstract boolean |
isUnordered() |
Указывает, является ли сообщение неупорядоченным. |
abstract int |
payloadProtocolID() |
Возвращает идентификатор протокола полезной нагрузки. |
abstract MessageInfo |
payloadProtocolID |
Устанавливает идентификатор протокола полезной нагрузки. |
abstract int |
streamNumber() |
Возвращает номер потока, на котором было получено сообщение, если сообщение было получено, в противном случае номер потока, на котором сообщение должно быть отправлено. |
abstract MessageInfo |
streamNumber |
Устанавливает номер потока, на котором сообщение должно быть отправлено. |
abstract long |
timeToLive() |
Временной интервал, по истечении которого отправляющий стеки SCTP могут истечь сообщение, если оно не было отправлено, или 0, чтобы указать, что таймаут не должен происходить. |
abstract MessageInfo |
timeToLive |
Устанавливает временной интервал, по истечении которого отправляющий стеки SCTP могут истечь сообщение, если оно не было отправлено. |
abstract MessageInfo |
unordered |
Устанавливает, является ли сообщение неупорядоченным. |
Подробное описание конструкторов
MessageInfo
protected MessageInfo()
Подробное описание методов
createOutgoing
public static MessageInfo createOutgoing(SocketAddress address, int streamNumber)
MessageInfo, подходящий для отправки сообщения. Возвращаемый экземпляр будет иметь значение unordered установленным в false, значение timeToLive установленным в 0, значение complete установленным в true, и значение payloadProtocolID установленным в 0. Эти значения, если необходимо, можно установить с помощью соответствующего метода settera перед отправкой сообщения.
- Параметры:
-
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. Эти значения, если необходимо, можно установить с помощью соответствующего метода settera перед отправкой сообщения.
- Параметры:
-
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
- См. также:
isUnordered
public abstract boolean isUnordered()
true указывает, что сообщение было отправлено неупорядоченно. Для отправляемых сообщений true запрашивает неупорядоченную доставку сообщения, false указывает, что сообщение упорядоченное.- Возвращаемое значение:
-
trueесли сообщение неупорядоченное, в противном случаеfalse
unordered
public abstract MessageInfo unordered(boolean unordered)
- Параметры:
-
unordered-trueзапрашивает неупорядоченную доставку сообщения,falseуказывает, что сообщение упорядоченное. - Возвращаемое значение:
- Это MessageInfo
- См. также:
payloadProtocolID
public abstract int payloadProtocolID()
Значение, указывающее тип данных протокола полезной нагрузки, передаваемых/получаемых. Это значение передаётся как необработанные данные SCTP. 0 указывает неуказанный идентификатор протокола полезной нагрузки.
- Возвращаемое значение:
- Идентификатор протокола полезной нагрузки
payloadProtocolID
public abstract MessageInfo payloadProtocolID(int ppid)
Значение, указывающее тип данных протокола полезной нагрузки, передаваемых. Это значение передаётся как необработанные данные SCTP.
- Параметры:
-
ppid- Идентификатор протокола полезной нагрузки, или0указывает неуказанный идентификатор протокола полезной нагрузки. - Возвращаемое значение:
- Это MessageInfo
- См. также:
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
- См. также:
© 1993, 2025, 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://download.java.net/java/early_access/jdk24/docs/api/jdk.sctp/com/sun/nio/sctp/MessageInfo.html