public class DatagramPacketDecoder extends MessageToMessageDecoder<DatagramPacket>
ByteBuf
解码器解码接收到的DatagramPacket
的内容。
例如,
ChannelPipeline
pipeline = ...; pipeline.addLast("udpDecoder", new DatagramPacketDecoder
(new ProtobufDecoder
(...));
ChannelHandler.Sharable
Constructor and Description |
---|
DatagramPacketDecoder(MessageToMessageDecoder<ByteBuf> decoder)
使用指定的 ByteBuf 解码器创建一个DatagramPacket 解码器。
|
Modifier and Type | Method and Description |
---|---|
boolean |
acceptInboundMessage(java.lang.Object msg)
如果应该处理给定的消息,则返回
true 。
|
void |
channelActive(ChannelHandlerContext ctx)
|
void |
channelInactive(ChannelHandlerContext ctx)
|
void |
channelReadComplete(ChannelHandlerContext ctx)
|
void |
channelRegistered(ChannelHandlerContext ctx)
|
void |
channelUnregistered(ChannelHandlerContext ctx)
|
void |
channelWritabilityChanged(ChannelHandlerContext ctx)
|
protected void |
decode(ChannelHandlerContext ctx, DatagramPacket msg, java.util.List<java.lang.Object> out)
从一条消息解码到另一条消息。
|
void |
exceptionCaught(ChannelHandlerContext ctx, java.lang.Throwable cause)
|
void |
handlerAdded(ChannelHandlerContext ctx)
子类可以忽略这个方法。
|
void |
handlerRemoved(ChannelHandlerContext ctx)
子类可以忽略这个方法。
|
boolean |
isSharable()
返回 true 如果实现是Sharable ,因此可以被添加到不同ChannelPipeline 秒。
|
void |
userEventTriggered(ChannelHandlerContext ctx, java.lang.Object evt)
|
channelRead
ensureNotSharable
public DatagramPacketDecoder(MessageToMessageDecoder<ByteBuf> decoder)
ByteBuf
解码器创建一个DatagramPacket
解码器。
decoder
- 指定的ByteBuf
解码器
public boolean acceptInboundMessage(java.lang.Object msg) throws java.lang.Exception
MessageToMessageDecoder
true
。
如果false
它将被传递到ChannelPipeline
中的下一个ChannelInboundHandler
。
acceptInboundMessage
在课堂上
MessageToMessageDecoder<DatagramPacket>
java.lang.Exception
protected void decode(ChannelHandlerContext ctx, DatagramPacket msg, java.util.List<java.lang.Object> out) throws java.lang.Exception
MessageToMessageDecoder
decode
在类
MessageToMessageDecoder<DatagramPacket>
ctx
- 这MessageToMessageDecoder
所属的ChannelHandlerContext
msg
- 要解码到另一个的消息
out
- 应该添加解码消息的
List
java.lang.Exception
- 发生错误时抛出
public void channelRegistered(ChannelHandlerContext ctx) throws java.lang.Exception
ChannelInboundHandlerAdapter
ChannelHandlerContext.fireChannelRegistered()
转发到ChannelPipeline
中的下一个ChannelInboundHandler
。
子类可以重写此方法来更改行为。
channelRegistered
接口
ChannelInboundHandler
channelRegistered
在课程
ChannelInboundHandlerAdapter
java.lang.Exception
public void channelUnregistered(ChannelHandlerContext ctx) throws java.lang.Exception
ChannelInboundHandlerAdapter
ChannelHandlerContext.fireChannelUnregistered()
转发到ChannelPipeline
中的下一个ChannelInboundHandler
。
子类可以重写此方法来更改行为。
channelUnregistered
接口
ChannelInboundHandler
channelUnregistered
在课堂上
ChannelInboundHandlerAdapter
java.lang.Exception
public void channelActive(ChannelHandlerContext ctx) throws java.lang.Exception
ChannelInboundHandlerAdapter
ChannelHandlerContext.fireChannelActive()
转发至ChannelPipeline
中的下一个ChannelInboundHandler
。
子类可以重写此方法来更改行为。
channelActive
,界面
ChannelInboundHandler
channelActive
在课程
ChannelInboundHandlerAdapter
java.lang.Exception
public void channelInactive(ChannelHandlerContext ctx) throws java.lang.Exception
ChannelInboundHandlerAdapter
ChannelHandlerContext.fireChannelInactive()
转发到ChannelPipeline
中的下一个ChannelInboundHandler
。
子类可以重写此方法来更改行为。
channelInactive
在界面
ChannelInboundHandler
channelInactive
在类
ChannelInboundHandlerAdapter
java.lang.Exception
public void channelReadComplete(ChannelHandlerContext ctx) throws java.lang.Exception
ChannelInboundHandlerAdapter
ChannelHandlerContext.fireChannelReadComplete()
转发至ChannelPipeline
中的下一个ChannelInboundHandler
。
子类可以重写此方法来更改行为。
channelReadComplete
接口
ChannelInboundHandler
channelReadComplete
在课程
ChannelInboundHandlerAdapter
java.lang.Exception
public void userEventTriggered(ChannelHandlerContext ctx, java.lang.Object evt) throws java.lang.Exception
ChannelInboundHandlerAdapter
ChannelHandlerContext.fireUserEventTriggered(Object)
转发到ChannelPipeline
中的下一个ChannelInboundHandler
。
子类可以重写此方法来更改行为。
userEventTriggered
接口
ChannelInboundHandler
userEventTriggered
,课时
ChannelInboundHandlerAdapter
java.lang.Exception
public void channelWritabilityChanged(ChannelHandlerContext ctx) throws java.lang.Exception
ChannelInboundHandlerAdapter
ChannelHandlerContext.fireChannelWritabilityChanged()
转发至ChannelPipeline
中的下一个ChannelInboundHandler
。
子类可以重写此方法来更改行为。
channelWritabilityChanged
在界面
ChannelInboundHandler
channelWritabilityChanged
ChannelInboundHandlerAdapter
java.lang.Exception
public void exceptionCaught(ChannelHandlerContext ctx, java.lang.Throwable cause) throws java.lang.Exception
ChannelInboundHandlerAdapter
ChannelHandlerContext.fireExceptionCaught(Throwable)
转发至ChannelPipeline
中的下一个ChannelHandler
。
子类可以重写此方法来更改行为。
exceptionCaught
在界面
ChannelHandler
exceptionCaught
在界面
ChannelInboundHandler
exceptionCaught
在课堂上
ChannelInboundHandlerAdapter
java.lang.Exception
public void handlerAdded(ChannelHandlerContext ctx) throws java.lang.Exception
ChannelHandlerAdapter
handlerAdded
在界面
ChannelHandler
handlerAdded
在课堂上
ChannelHandlerAdapter
java.lang.Exception
public void handlerRemoved(ChannelHandlerContext ctx) throws java.lang.Exception
ChannelHandlerAdapter
handlerRemoved
在界面
ChannelHandler
handlerRemoved
在课堂上
ChannelHandlerAdapter
java.lang.Exception
public boolean isSharable()
ChannelHandlerAdapter
Sharable
,则返回true
,因此可以将其添加到不同的ChannelPipeline
。
isSharable
在课堂
ChannelHandlerAdapter
Copyright © 2008–2018 The Netty Project. All rights reserved.