Module  jdk.sctp
软件包  com.sun.nio.sctp

Class MessageInfo



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

    收到由SctpChannel.receiveSctpMultiChannel.receive返回的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()