模块  jdk.sctp
软件包  com.sun.nio.sctp

Class MessageInfo


  • public abstract class MessageInfo
    extends Object
    MessageInfo类提供有关消息的其他辅助信息。

    收到的SctpChannel.receive525214622699返回的SCTP消息返回一个MessageInfo实例,可以查询该实例以确定有关接收消息的辅助信息。 消息发送应使用的一个createOutgoing方法来为所述消息提供辅助数据被发送,并且可以使用适当的设置方法来覆盖所规定的默认值unorderedtimeToLivecompletepayloadProtocolID ,在发送消息之前。

    对于外出消息, timeToLive参数是发送方SCTP堆栈可能在消息尚未发送时到期的时间段。 该时间段表示堆栈在该时间段到期后不再需要发送该消息。 它不是硬超时,可能受关联是否支持部分可靠性扩展RFC 3758的影响

    多个并发线程使用MessageInfo实例是不安全的。 如果要由多个线程使用MessageInfo,则应通过适当的同步来控制对MessageInfo的访问。

    从以下版本开始:
    1.7
    • 构造方法详细信息

      • MessageInfo

        protected MessageInfo()
        初始化此类的新实例。
    • 方法详细信息

      • createOutgoing

        public static MessageInfo createOutgoing​(SocketAddress address,
                                                 int streamNumber)
        创建适合在发送消息时使用的MessageInfo实例。

        返回的实例将其unordered值设置为false ,其timeToLive值设置为0 ,其complete值设置为true ,其payloadProtocolID值设置为0 如果需要,可以在发送消息之前通过适当的setter方法设置这些值。

        参数
        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 如果需要,可以在发送消息之前通过适当的setter方法设置这些值。

        参数
        association - 要发送消息的关联
        address - 要将消息发送到的关联的首选对等地址,或者是 null以使用对等主地址
        streamNumber - 将在其上发送消息的流编号。
        结果
        传出消息信息
        异常
        IllegalArgumentException - 如果 associationnull ,或者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请求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()