六、netty tcp客户端
2021-02-20 04:22
标签:ntb 代码 charset localhost ali 需要 serve cti channel https://www.cnblogs.com/lay2017/p/12922074.html 除了服务端,netty还可以构建客户端。客户端你需要 1.创建EventLoopGroup 2.配置Bootstrap 3.创建ChannelInitializer 4.启动 示例代码如下 第一步是创建EventLoopGroup,相对比较简单,如 和ServerBootstrap类似,客户端Bootstrap 还需要配置一下 配置了EventLoopGroup,指定NioSocketChannel,以及server的地址。 第三步是创建ChannelInitializer 绑定到bootstrap上,并给pipeline添加ClientHandler 最后一步是启动 将会连接到服务端,并同步等待连接完成 如果想等待关闭,这样写 最后给出ClientHandler 六、netty tcp客户端 标签:ntb 代码 charset localhost ali 需要 serve cti channel 原文地址:https://www.cnblogs.com/lay2017/p/12922743.html所有文章
正文
EventLoopGroup group = new NioEventLoopGroup();
try{
Bootstrap clientBootstrap = new Bootstrap();
clientBootstrap.group(group);
clientBootstrap.channel(NioSocketChannel.class);
clientBootstrap.remoteAddress(new InetSocketAddress("localhost", 9999));
clientBootstrap.handler(new ChannelInitializer
创建EventLoopGroup
EventLoopGroup group = new NioEventLoopGroup();
创建并配置Bootstrap
Bootstrap clientBootstrap = new Bootstrap();
clientBootstrap.group(group);
clientBootstrap.channel(NioSocketChannel.class);
clientBootstrap.remoteAddress(new InetSocketAddress("localhost", 9999));
创建ChannelInitializer
clientBootstrap.handler(new ChannelInitializer
启动
ChannelFuture channelFuture = clientBootstrap.connect().sync();
channelFuture.channel().closeFuture().sync();
ClientHandler
public class ClientHandler extends SimpleChannelInboundHandler {
@Override
public void channelActive(ChannelHandlerContext channelHandlerContext){
channelHandlerContext.writeAndFlush(Unpooled.copiedBuffer("Netty Rocks!", CharsetUtil.UTF_8));
}
@Override
public void channelRead0(ChannelHandlerContext channelHandlerContext, ByteBuf in) {
System.out.println("Client received: " + in.toString(CharsetUtil.UTF_8));
}
@Override
public void exceptionCaught(ChannelHandlerContext channelHandlerContext, Throwable cause){
cause.printStackTrace();
channelHandlerContext.close();
}
}