- java.lang.Object
-
- com.sun.nio.sctp.MessageInfo
-
public abstract class MessageInfo extends Object
MessageInfo
类提供有关消息的其他辅助信息。收到的
SctpChannel.receive
和525214622699返回的SCTP消息返回一个MessageInfo
实例,可以查询该实例以确定有关接收消息的辅助信息。 消息发送应使用的一个createOutgoing
种方法来为所述消息提供辅助数据被发送,并且可以使用适当的设置方法来覆盖所规定的默认值unordered
,timeToLive
,complete
和payloadProtocolID
,在发送消息之前。对于外出消息,
timeToLive
参数是发送方SCTP堆栈可能在消息尚未发送时到期的时间段。 该时间段表示堆栈在该时间段到期后不再需要发送该消息。 它不是硬超时,可能受关联是否支持部分可靠性扩展RFC 3758的影响 。多个并发线程使用
MessageInfo
实例是不安全的。 如果要由多个线程使用MessageInfo,则应通过适当的同步来控制对MessageInfo的访问。- 从以下版本开始:
- 1.7
-
-
构造方法摘要
构造方法 变量 构造器 描述 protected
MessageInfo()
初始化此类的新实例。
-
方法摘要
所有方法 静态方法 实例方法 抽象方法 具体的方法 变量和类型 方法 描述 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()
-
-