- 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
 
 
-  
        
       
-  
             
构造方法摘要
构造方法 变量 构造器 描述 protectedMessageInfo()初始化此类的新实例。 
-  
             
方法摘要
所有方法 静态方法 实例方法 抽象方法 具体的方法 变量和类型 方法 描述 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() 
 
 -  
 
 -