Netty初级例子-Hello World

1、导入的Jar,这里用netty-3.5.1.Final.jar

Netty的下载地址:http://netty.io/

2、编写服务端代码

public class HelloWorldHandler extends SimpleChannelHandler {
     @Override
     public void channelConnected(ChannelHandlerContext ctx,ChannelStateEvent event){
          event.getChannel().write("Hello World");
     }
     @Override
     public void exceptionCaught(ChannelHandlerContext ctx,ExceptionEvent event){
          event.getChannel().close();
     }

}

3、编写服务器测试类

public static void main(String[] args) {
      ServerBootstrap bootstrap = new ServerBootstrap(new NioServerSocketChannelFactory (Executors.newCachedThreadPool(), Executors.newCachedThreadPool()));
      bootstrap.setPipelineFactory(new ChannelPipelineFactory() {
      @Override
      public ChannelPipeline getPipeline() throws Exception {
          // TODO Auto-generated method stub
          ChannelPipeline pipeline = Channels.pipeline();
          pipeline.addLast("decoder", new StringDecoder());   
          pipeline.addLast("encoder", new StringEncoder());  
          pipeline.addLast("handler", new HelloWorldHandler());//这里加入上面步骤2定义的HelloWorldHandler 
          return pipeline;
   }
  });
  bootstrap.bind(new InetSocketAddress(8080));
 }

4、编写客户端代码

public class HelloWorldClientHandler extends SimpleChannelHandler {
     @Override
     public void messageReceived(ChannelHandlerContext ctx, MessageEvent e){
          String message = (String)e.getMessage();
          System.out.println(message);
          e.getChannel().close();
     }
     public void exceptionCaught(ChannelHandlerContext ctx, ExceptionEvent e) throws Exception{
          e.getChannel().close();
     }

}

5、编写客户端测试类

public static void main(String[] args) {
      ClientBootstrap bootStrap = new ClientBootstrap(new NioClientSocketChannelFactory(Executors.newCachedThreadPool(), Executors.newCachedThreadPool()));
      bootStrap.setPipelineFactory(new ChannelPipelineFactory() {
          @Override public ChannelPipeline getPipeline() throws Exception {
                 // TODO Auto-generated method stub
                 ChannelPipeline channelPipeline = Channels.pipeline();
                 channelPipeline.addLast("decoder", new StringDecoder());  
                 channelPipeline.addLast("encoder", new StringEncoder());
                 channelPipeline.addLast("handler", new HelloWorldClientHandler());//这里加入4中定义的处理类
                return channelPipeline;
          }
  });
  
  ChannelFuture channelFuture = bootStrap.connect(new InetSocketAddress("127.0.0.1",8080));
  channelFuture.getChannel().getCloseFuture().awaitUninterruptibly();
  bootStrap.releaseExternalResources();
 }

完成

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值