|
|||||||||
| 上一个类 下一个类 | 框架 无框架 | ||||||||
| 摘要: 嵌套 | 字段 | 构造方法 | 方法 | 详细信息: 字段 | 构造方法 | 方法 | ||||||||
java.lang.Objectorg.jboss.netty.bootstrap.Bootstrap
org.jboss.netty.bootstrap.ClientBootstrap
public class ClientBootstrap

一个创建客户端通道和尝试连接的帮助类.
Options用来设置一个channel:
要了解更多有效选项集的详细信息,请参阅ClientBootstrapb = ...; // 一个channel的选项集 b.setOption("remoteAddress", newInetSocketAddress("example.com", 8080)); b.setOption("tcpNoDelay", true); b.setOption("receiveBufferSize", 1048576);
ChannelConfig和相应子类.
ChannelPipeline,你可以通过两个方式设置.
一个推荐的方式是通过调用Bootstrap.setPipelineFactory(ChannelPipelineFactory)方法 .
ClientBootstrapb = ...; b.setPipelineFactory(new MyPipelineFactory()); public class MyPipelineFactory implementsChannelPipelineFactory{ publicChannelPipelinegetPipeline() throws Exception { // Create and configure a new pipeline for a new channel.ChannelPipelinep =Channels.pipeline(); p.addLast("encoder", new EncodingHandler()); p.addLast("decoder", new DecodingHandler()); p.addLast("logic", new LogicHandler()); return p; } }
另外一个方法只有在特定的情况使用,是使用默认的pipeline并且让bootstrap使用使用浅拷贝为每个新的channel设置:
请注意这里的'浅拷贝'的意思仅仅是把ClientBootstrapb = ...;ChannelPipelinep = b.getPipeline(); // Add handlers to the default pipeline. p.addLast("encoder", new EncodingHandler()); p.addLast("decoder", new DecodingHandler()); p.addLast("logic", new LogicHandler());
ChannelHandler的引用添加到新的管道上,而不是克隆
ChannelHandler. 因此,你不能使用该方法在一个接受传入连接去创建子通道的服务器上打开多个Channel.
Channel应用不同的设置ClientBootstrap仅仅是个帮助类. 他不分配和管理任何资源.管理资源是使用在构造方法指定的
ChannelFactory类进行管理.因此,你可以在不同的ClientBootstrap实例上使用相同的
ChannelFactory为不同的Channel应该不同的设置.
| 构造方法摘要 | |
|---|---|
ClientBootstrap()
创建一个没有 ChannelFactory设置的实例. |
|
ClientBootstrap(ChannelFactory channelFactory)
使用指定的 ChannelFactory创建一个实例. |
|
| 方法摘要 | |
|---|---|
ChannelFuture |
connect()
使用当前的 "remoteAddress"属性和"localAddress"属性尝试一个连接. |
ChannelFuture |
connect(java.net.SocketAddress remoteAddress)
使用指定的 remoteAddress 属性和当前的 "localAddress"属性尝试一个新的连接. |
ChannelFuture |
connect(java.net.SocketAddress remoteAddress,
java.net.SocketAddress localAddress)
使用指定的 remoteAddress属性和指定的localAddress属性尝试一个连接.如果
"localAddress" 属性没有设置 ,新通道的本地地址会自动检测. |
| 从类 org.jboss.netty.bootstrap.Bootstrap 继承的方法 |
|---|
getFactory, getOption, getOptions, getPipeline, getPipelineAsMap, getPipelineFactory, releaseExternalResources, setFactory, setOption, setOptions, setPipeline, setPipelineAsMap, setPipelineFactory |
| 从类 java.lang.Object 继承的方法 |
|---|
equals, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait |
| 构造方法详细信息 |
|---|
public ClientBootstrap()
ChannelFactory设置的实例. Bootstrap.setFactory(ChannelFactory)方法
必须在任何I/O操作请求前被调用.
public ClientBootstrap(ChannelFactory channelFactory)
ChannelFactory创建一个实例.
| 方法详细信息 |
|---|
public ChannelFuture connect()
"remoteAddress"属性和"localAddress"属性尝试一个连接. 如果
"localAddress" 属性没有设置,新通道的本地地址会自动检测. 该方法和以下代码很相似:
ClientBootstrap b = ...;
b.connect(b.getOption("remoteAddress"), b.getOption("localAddress"));
java.lang.IllegalStateException - 如果 "remoteAddress" 属性没有设置则抛出异常
java.lang.ClassCastException - 如果 "remoteAddress" 属性或者 "localAddress"
属性的值既不是SocketAddress也不是null时抛出异常
ChannelPipelineException - 如果这个启动类的 pipelineFactory 方法创建一个ChannelPipeline失败时抛出异常public ChannelFuture connect(java.net.SocketAddress remoteAddress)
remoteAddress 属性和当前的 "localAddress"属性尝试一个新的连接. 如果
"localAddress" 属性没有设置 ,新通道的本地地址会自动检测. 该方法与下面代码完全相同:
ClientBootstrap b = ...;
b.connect(remoteAddress, b.getOption("localAddress"));
java.lang.ClassCastException - 如果 "remoteAddress" 属性或者 "localAddress"
属性的值既不是SocketAddress也不是null时抛出异常
ChannelPipelineException - 如果这个启动类的 pipelineFactory 方法创建一个ChannelPipeline失败时抛出异常
public ChannelFuture connect(java.net.SocketAddress remoteAddress,
java.net.SocketAddress localAddress)
remoteAddress属性和指定的localAddress属性尝试一个连接.如果
"localAddress" 属性没有设置 ,新通道的本地地址会自动检测.
ChannelPipelineException - 如果这个启动类的 pipelineFactory 方法创建一个ChannelPipeline失败时抛出异常
|
|||||||||
| 上一个类 下一个类 | 框架 无框架 | ||||||||
| 摘要: 嵌套 | 字段 | 构造方法 | 方法 | 详细信息: 字段 | 构造方法 | 方法 | ||||||||