|
|||||||||
上一个类 下一个类 | 框架 无框架 | ||||||||
摘要: 嵌套 | 字段 | 构造方法 | 方法 | 详细信息: 字段 | 构造方法 | 方法 |
java.lang.Object org.jboss.netty.bootstrap.Bootstrap org.jboss.netty.bootstrap.ClientBootstrap
public class ClientBootstrap
一个创建客户端通道和尝试连接的帮助类.
Options
用来设置一个channel:
要了解更多有效选项集的详细信息,请参阅ClientBootstrap
b = ...; // 一个channel的选项集 b.setOption("remoteAddress", newInetSocketAddress
("example.com", 8080)); b.setOption("tcpNoDelay", true); b.setOption("receiveBufferSize", 1048576);
ChannelConfig
和相应子类.
ChannelPipeline
,你可以通过两个方式设置.
一个推荐的方式是通过调用Bootstrap.setPipelineFactory(ChannelPipelineFactory)
方法 .
ClientBootstrap
b = ...; b.setPipelineFactory(new MyPipelineFactory()); public class MyPipelineFactory implementsChannelPipelineFactory
{ publicChannelPipeline
getPipeline() throws Exception { // Create and configure a new pipeline for a new channel.ChannelPipeline
p =Channels
.pipeline(); p.addLast("encoder", new EncodingHandler()); p.addLast("decoder", new DecodingHandler()); p.addLast("logic", new LogicHandler()); return p; } }
另外一个方法只有在特定的情况使用,是使用默认的pipeline并且让bootstrap使用使用浅拷贝为每个新的channel设置:
请注意这里的'浅拷贝'的意思仅仅是把ClientBootstrap
b = ...;ChannelPipeline
p = 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
失败时抛出异常
|
|||||||||
上一个类 下一个类 | 框架 无框架 | ||||||||
摘要: 嵌套 | 字段 | 构造方法 | 方法 | 详细信息: 字段 | 构造方法 | 方法 |