|
|||||||||
上一个类 下一个类 | 框架 无框架 | ||||||||
摘要: 嵌套 | 字段 | 构造方法 | 方法 | 详细信息: 字段 | 构造方法 | 方法 |
java.lang.Object org.jboss.netty.bootstrap.Bootstrap org.jboss.netty.bootstrap.ConnectionlessBootstrap
public class ConnectionlessBootstrap
一个为无连接传输创建新的服务端Channel
的帮助类.
ServerBootstrap
代替.
对于面向连接的传输如TCP/IP和接受传入连接并接受子通道接受消息的本地传输,千万不要使用该帮助类.
Options
方法配置一个 channel:
要了解更详细的有效属性,请参阅ConnectionlessBootstrap
b = ...; // Options for a new channel b.setOption("localAddress", newInetSocketAddress
(8080)); b.setOption("tcpNoDelay", true); b.setOption("receiveBufferSize", 1048576);
ChannelConfig
及其子类.
ChannelPipeline
,你可以通过两个方式设置.
一个推荐的方式是通过调用Bootstrap.setPipelineFactory(ChannelPipelineFactory)
方法 .
ConnectionlessBootstrap
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设置::
请注意这里的'浅拷贝'的意思仅仅是把ConnectionlessBootstrap
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
仅仅是个帮助类. 他不分配和管理任何资源.管理资源是使用ClientBootstrap
在构造方法指定的ChannelFactory
类进行管理.因此,你可以在不同的ClientBootstrap
实例上使用相同的
ChannelFactory
为不同的Channel
应该不同的设置.
构造方法摘要 | |
---|---|
ConnectionlessBootstrap()
创建一个没有 ChannelFactory 设置的实例. |
|
ConnectionlessBootstrap(ChannelFactory channelFactory)
使用指定的 ChannelFactory 创建一个实例. |
方法摘要 | |
---|---|
Channel |
bind()
使用当前 "localAddress" 属性设置绑定的本地地址创建一个channel. |
Channel |
bind(java.net.SocketAddress localAddress)
创建一个绑定到指定的本地地址的channel. |
ChannelFuture |
connect()
使用当前的 "remoteAddress" 属性和"localAddress" 属性创建一个已经连接的channel. |
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 ConnectionlessBootstrap()
ChannelFactory
设置的实例. Bootstrap.setFactory(ChannelFactory)
方法
必须在任何I/O操作请求前被调用.
public ConnectionlessBootstrap(ChannelFactory channelFactory)
ChannelFactory
创建一个实例.
方法详细信息 |
---|
public Channel bind()
"localAddress"
属性设置绑定的本地地址创建一个channel. 该方法和以下代码很相似:
ConnectionlessBootstrap
b = ...;
b.bind(b.getOption("localAddress"));
java.lang.IllegalStateException
- 如果 "localAddress"
属性没有设置则抛出异常
java.lang.ClassCastException
- 如果 "localAddress"
属性的值既不是SocketAddress
也不是
null
时抛出异常
ChannelException
- 如果创建新的channel并绑定到本地地址失败时抛出异常public Channel bind(java.net.SocketAddress localAddress)
ChannelException
- 如果创建新的channel并绑定到本地地址失败时抛出异常public ChannelFuture connect()
"remoteAddress"
属性和"localAddress"
属性创建一个已经连接的channel.
如果 "localAddress"
属性没有设置,新通道的本地地址会自动检测. 该方法和以下代码很相似:
ConnectionlessBootstrap
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"
属性没有设置 ,新通道的本地地址会自动检测. 该方法与下面代码完全相同:
ConnectionlessBootstrap
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
失败时抛出异常
|
|||||||||
上一个类 下一个类 | 框架 无框架 | ||||||||
摘要: 嵌套 | 字段 | 构造方法 | 方法 | 详细信息: 字段 | 构造方法 | 方法 |