- 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 描述 protected
MessageInfo()
初始化此类的新实例。
-
方法摘要
所有方法 静态方法 接口方法 抽象方法 具体的方法 Modifier and Type 方法 描述 abstract SocketAddress
address()
如果接收到消息,则返回源套接字地址,否则将发送消息的首选目标。abstract Association
association()
返回消息被接收的关联,如果已经接收到消息,否则将发送该消息的关联。abstract int
bytes()
返回接收到的消息读取的字节数。abstract MessageInfo
complete(boolean complete)
设置消息是否完成。static MessageInfo
createOutgoing(Association association, SocketAddress address, int streamNumber)
创建一个适用于向给定关联发送消息时使用的MessageInfo
实例。static MessageInfo
createOutgoing(SocketAddress address, int streamNumber)
创建一个适合在发送消息时使用的MessageInfo
实例。abstract boolean
isComplete()
告知邮件是否完整。abstract boolean
isUnordered()
告知邮件是否无序。abstract int
payloadProtocolID()
返回有效负载协议标识符。abstract MessageInfo
payloadProtocolID(int ppid)
设置有效载荷协议标识符。abstract int
streamNumber()
如果已经接收到消息,则返回接收到消息的流号,否则返回该消息要发送的流号。abstract MessageInfo
streamNumber(int streamNumber)
设置要发送消息的流号。abstract long
timeToLive()
如果尚未发送消息,发送端可能会过期的时间段,或0
表示不会发生超时的时间段。abstract MessageInfo
timeToLive(long millis)
设置发送方如果尚未发送消息的时间段。abstract MessageInfo
unordered(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()
-
-