方法
|
說明
|
EventLoop eventLoop()
|
獲得EventLoop實例,每一個Channel實例都會被註冊到一個EventLoop中,這個EventLoop實例就是Channel註冊的實例。
|
Channel parent()
|
獲得父Channel實例。如: channelB = channelA.accept(), 那麼channelA就是channelB的parent。
|
ChannelConfig config()
|
獲得Channel實例的配置信息。
|
boolean isOpen()
|
channel是否處於open狀態。netty爲每一個channel定義了四種狀態open->registered->active->closed。一個新建立的channel處於open狀態,隨後他被註冊到一個eventloop中它處於open+registered狀態,當這個channel上的鏈接創建成功後它處於open+registered+active狀態,被關閉後處於closed狀態。
|
boolean isRegistered()
|
channel是否處於registered狀態。
|
boolean isActive()
|
channel是否處於active狀態。
|
SocketAddress localAddress()
|
channel的本地bind的地址。
|
SocketAddress remoteAddress()
|
channel鏈接的遠程channel的地址。
|
boolean isWritable()
|
channel的I/O線程是否能夠當即執操做。
|
Unsafe unsafe()
|
獲得channel內部的Unsafe實例。
|
ChannelPipeline pipeline()
|
獲得channel內部的ChannelPipeline實例。
|
ByteBufAllocator alloc()
|
channel持有的buffer分配器。
|
方法
|
說明
|
ChannelFuture bind(SocketAddress localAddress)
ChannelFuture bind(SocketAddress localAddress, ChannelPromise promise)
|
讓channel綁定的指定的本地地址(localAddress)上。這個方法會觸發ChannelOutboundHandler#bind(ChannelHandlerContext, SocketAddress, ChannelPromise)方法的調用。
|
ChannelFuture connect(SocketAddress remoteAddress)
ChannelFuture connect(SocketAddress remoteAddress, SocketAddress localAddress)
ChannelFuture connect(SocketAddress remoteAddress, SocketAddress localAddress, ChannelPromise promise)
|
鏈接到遠程地址(remoteAddress), 這個方法會觸發ChannelOutboundHandler#connect(ChannelHandlerContext, SocketAddress, SocketAddress, ChannelPromise)方法的調用。
|
ChannelFuture disconnect()
ChannelFuture disconnect(ChannelPromise promise);
|
斷開鏈接, 這個方法會觸發ChannelOutboundHandler#disconnect(ChannelHandlerContext, ChannelPromise)的調用。
|
ChannelFuture close()
ChannelFuture close(ChannelPromise promise)
|
關閉channel. 這個方法會觸發ChannelOutboundHandler#close(ChannelHandlerContext, ChannelPromise)的調用。
|
ChannelFuture deregister()
ChannelFuture deregister(ChannelPromise promise)
|
從eventloop中註銷這個channel,這個方法會觸發ChannelOutboundHandler#deregister(ChannelHandlerContext, ChannelPromise)的調用。
|
ChannelFuture write(Object msg)
ChannelFuture write(Object msg, ChannelPromise promise)
|
向channel寫入數據,這個操做不會致使真正寫操做,只會把數據追加到輸出緩衝區中。它會觸發ChannelOutboundHandler#write(ChannelHandlerContext ctx, Object msg, ChannelPromise promise)調用。
|
Channel flush()
|
對輸出緩衝區中的數據執行真正的寫操做,調用這個方法後鏈接的另外一端才能收到write的數據,它會觸發ChannelOutboundHandler#flush(ChannelHandlerContext ctx)調用。
|
ChannelFuture writeAndFlush(Object msg, ChannelPromise promise)
ChannelFuture writeAndFlush(Object msg)
|
效果和先調用write而後調用flush同樣。
|
方法
|
說明
|
Channel read()
|
從channel中讀取數據,把數據放到輸入緩衝區中,而後觸發ChannelInboundHandler#channelRead(ChannelHandlerContext, Object)和ChannelInboundHandler#channelReadComplete(ChannelHandlerContext)調用,若是以前已經有一個read操做正在執行或等待執行,這個方法不會有任何影響。
|
方法
|
說明
|
SocketAddress localAddress()
|
同Channel
|
SocketAddress remoteAddress()
|
同Channel
|
void register(EventLoop eventLoop, ChannelPromise promise)
|
同Channel,
|
void bind(SocketAddress localAddress, ChannelPromise promise)
|
同Channel, 必須在I/O線程中執行
|
void connect(SocketAddress remoteAddress, SocketAddress localAddress, ChannelPromise promise)
|
同Channel, 必須在I/O線程中執行
|
void disconnect(ChannelPromise promise)
|
同Channel, 必須在I/O線程中執行
|
void close(ChannelPromise promise)
|
同Channel, 必須在I/O線程中執行
|
void closeForcibly()
|
當即關閉channel,而且不觸發任何事件。
|
void deregister(ChannelPromise promise)
|
同Channel, 必須在I/O線程中執行
|
void beginRead()
|
爲channel觸發read事件作準備。如:把read事件註冊到NIO 的selector上。 必須在I/O線程中執行 必須在I/O線程中執行
|
void write(Object msg, ChannelPromise promise)
|
同Channel, 必須在I/O線程中執行
|
void flush()
|
同Channel, 必須在I/O線程中執行
|
ChannelOutboundBuffer outboundBuffer()
|
獲得channel的輸出緩衝區,write的數據就是追加到這個緩衝區中。 必須在I/O線程中執行
|