码迷,mamicode.com
首页 > 编程语言 > 详细

Java Netty (1)

时间:2017-04-30 23:08:17      阅读:361      评论:0      收藏:0      [点我收藏+]

标签:cli   exe   处理   executor   exec   发展   客户端   tcp   ntb   

Netty是由JBOSS提供的一个java开源框架,本质上也是NIO,是对NIO的封装,比NIO更加高级,可以说发展的路线是IO->NIO->Netty。

ServerBootstrap和ClientBootstrap是Netty中两个比较重要的类,分别用来进行服务器和客户端的初始化。

服务器:

        // ChannelFactory
        final ChannelFactory channelFactory = new NioServerSocketChannelFactory(  
                // Boss线程池,处理Socket请求
                Executors.newCachedThreadPool(),  
                // Worker线程池,由于使用的是NIO,1个Worker线程可以管理多个Channel
                Executors.newCachedThreadPool()); 
        // ServerBootstrap
        ServerBootstrap bootstrap = new ServerBootstrap(channelFactory);
    
        ServerPipelineFactory serverPipelineFactory = new ServerPipelineFactory(executionHandler);
        bootstrap.setPipelineFactory(serverPipelineFactory); 

ServerBootstrap实例化时需要一个ServerSocketChannelFactory参数,ServerSocketChannelFactory可以选择NioServerSocketChannelFactory

或者OioServerSocketChannelFactory,NioServerSocketChannelFactory使用的是NIO,OioServerSocketChannelFactory使用的是普通IO。两者都需要两个线程池,一个Boss线程池,一个Worker线程池。一个Boss线程负责对一个端口的监听,接收到Socket连接请求以后交给一个Worker线程处理,然后自己继续监听。

客户端:

        // ChannelFactory
        final ChannelFactory channelFactory = new NioClientSocketChannelFactory(  
                // Boss线程池
                Executors.newCachedThreadPool(),  
                // Worker线程池
                Executors.newCachedThreadPool());  
        // ServerBootstrap
        bootstrap = new ClientBootstrap(channelFactory);
        
        ClientPipelineFactory clientPipelineFactory = new ClientPipelineFactory(executionHandler);
        bootstrap.setPipelineFactory(clientPipelineFactory);
        bootstrap.setOption("tcpNoDelay" ,true);  
        bootstrap.setOption("keepAlive", true);  
        bootstrap.connect(new InetSocketAddress(port));

 

Java Netty (1)

标签:cli   exe   处理   executor   exec   发展   客户端   tcp   ntb   

原文地址:http://www.cnblogs.com/mstk/p/6790512.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!