- java.lang.Object
-
- com.sun.nio.sctp.MessageInfo
-
public abstract class MessageInfo extends Object
MessageInfo类提供有关消息的附加辅助信息。收到由
SctpChannel.receive和SctpMultiChannel.receive返回的SCTP消息,返回一个可以查询的MessageInfo实例,以确定有关接收到的消息的辅助信息。 消息发送应使用的一个createOutgoing种方法来为所述消息提供辅助数据被发送,并且可以使用适当的设置方法来覆盖所规定的默认值unordered,timeToLive,complete和payloadProtocolID,在发送消息之前。对于外出消息,
timeToLive参数是发送端SCTP堆栈如果尚未发送,则可能会过期消息的时间段。 该时间段是堆栈的指示,在时间段到期之后不再需要发送消息。 它不是硬超时,可能会受到关联支持部分可靠性扩展的影响, RFC 3758 。MessageInfo实例不能安全使用多个并发线程。 如果MessageInfo要由多个线程使用,则应通过适当的同步来控制对MessageInfo的访问。- 从以下版本开始:
- 1.7
-
-
构造方法摘要
构造方法 Modifier Constructor 描述 protectedMessageInfo()初始化此类的新实例。
-
方法摘要
所有方法 静态方法 接口方法 抽象方法 具体的方法 Modifier and Type 方法 描述 abstract SocketAddressaddress()如果接收到消息,则返回源套接字地址,否则将发送消息的首选目标。abstract Associationassociation()返回消息被接收的关联,如果已经接收到消息,否则将发送该消息的关联。abstract intbytes()返回接收到的消息读取的字节数。abstract MessageInfocomplete(boolean complete)设置消息是否完成。static MessageInfocreateOutgoing(Association association, SocketAddress address, int streamNumber)创建一个适用于向给定关联发送消息时使用的MessageInfo实例。static MessageInfocreateOutgoing(SocketAddress address, int streamNumber)创建一个适合在发送消息时使用的MessageInfo实例。abstract booleanisComplete()告知邮件是否完整。abstract booleanisUnordered()告知邮件是否无序。abstract intpayloadProtocolID()返回有效负载协议标识符。abstract MessageInfopayloadProtocolID(int ppid)设置有效载荷协议标识符。abstract intstreamNumber()如果已经接收到消息,则返回接收到消息的流号,否则返回该消息要发送的流号。abstract MessageInfostreamNumber(int streamNumber)设置要发送消息的流号。abstract longtimeToLive()如果尚未发送消息,发送端可能会过期的时间段,或0表示不会发生超时的时间段。abstract MessageInfotimeToLive(long millis)设置发送方如果尚未发送消息的时间段。abstract MessageInfounordered(boolean unordered)设置消息是否无序。
-
-
-
方法详细信息
-
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- 如果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发送。 对于正在发送的消息,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()
-
-