客户端初始化
创建引导类,确认线程模型,IO模型,以及业务处理逻辑。
客户端只需要一个线程模型即可,毕竟不是服务端不需要一个统一的线程模型去管理很多连接,客户端只需要一个线程模型主动去连接服务端就行了。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27
| public class NettyClient { public static void main(String[] args) { NioEventLoopGroup workerGroup = new NioEventLoopGroup(); Bootstrap bootstrap = new Bootstrap(); bootstrap .group(workerGroup) .channel(NioSocketChannel.class) .handler(new ChannelInitializer<SocketChannel>() { @Override public void initChannel(SocketChannel ch) { } }); bootstrap.connect("127.0.0.1", 8080).addListener(future -> { if (future.isSuccess()) { System.out.println("连接成功!"); } else { System.err.println("连接失败!"); }
}); } }
|
connect
方法返回的是一个 Future
,也就是说这个方是异步的,我们通过 addListener
方法可以监听到连接是否成功。
常用方法
attr()方法
- 给客户端的Channel绑定自定义属性,通过channel.attr()取出属性,