Класс 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 используется более чем одним потоком, доступ к нему следует контролировать с помощью соответствующей синхронизации.
- Начиная с:
- 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() |
Период времени, по истечении которого отправляющая сторона может удалить сообщение, если оно не было отправлено, или 0, указывающее, что тайм-аут не должен наступать. |
abstract MessageInfo |
timeToLive |
Устанавливает период времени, по истечении которого отправляющая сторона может удалить сообщение, если оно не было отправлено. |
abstract MessageInfo |
unordered |
Устанавливает, является ли сообщение неупорядоченным. |
Подробное описание конструкторов
MessageInfo
protected MessageInfo()
Подробное описание методов
createOutgoing
public static MessageInfo createOutgoing(SocketAddress address, int streamNumber)
MessageInfo, пригодный для отправки сообщения. Возвращаемому экземпляру присваиваются следующие значения: unordered — false, timeToLive — 0, complete — true, а payloadProtocolID — 0. При необходимости эти значения можно задать с помощью соответствующих методов установки перед отправкой сообщения.
- Параметры:
-
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. При необходимости эти значения можно задать с помощью соответствующих методов установки перед отправкой сообщения.
- Параметры:
-
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://docs.oracle.com/en/java/javase/25/docs/api/jdk.sctp/com/sun/nio/sctp/MessageInfo.html