Netty通信フレームの例

8703 ワード

まず、http://netty.io/にnetty-3..22.Final-dist.tar.bz 2をダウンロードします.
Javaプロジェクトを作成:
Netty通讯框架样例
二、編纂サンプル
サービス:
Netty通讯框架样例
package netty_test.test;



import java.net.InetSocketAddress;

import java.util.concurrent.Executors;



import org.jboss.netty.bootstrap.ServerBootstrap;

import org.jboss.netty.channel.ChannelHandlerContext;

import org.jboss.netty.channel.ChannelPipeline;

import org.jboss.netty.channel.ChannelPipelineFactory;

import org.jboss.netty.channel.ChannelStateEvent;

import org.jboss.netty.channel.Channels;

import org.jboss.netty.channel.SimpleChannelHandler;

import org.jboss.netty.channel.socket.nio.NioServerSocketChannelFactory;



public class HelloServer {

     public static void main(String args[]) {  

            // Server       

            ServerBootstrap bootstrap = new ServerBootstrap(  

                    new NioServerSocketChannelFactory(  

                            Executors.newCachedThreadPool(),  

                            Executors.newCachedThreadPool()));  

            //                     (Handler)  

            bootstrap  

                    .setPipelineFactory(new ChannelPipelineFactory() {  

                        @Override  

                        public ChannelPipeline getPipeline()  

                                throws Exception {  

                            return Channels  

                                    .pipeline(new HelloServerHandler());  

                        }  

                    });  

            //   8000        。  

            bootstrap.bind(new InetSocketAddress(8000));  

        }  

      

        private static class HelloServerHandler extends  

                SimpleChannelHandler {  

      

            /** 

             *                 ,  "Hello world, I'm server." 

             *  

             * @alia OneCoder 

             * @author lihzh 

             */  

            @Override  

            public void channelConnected(  

                    ChannelHandlerContext ctx,  

                    ChannelStateEvent e) {  

                System.out.println("Hello world, I'm server.");  

            }  

        }  

}
View Code
クライアント:
Netty通讯框架样例
package netty_test.test;



import java.net.InetSocketAddress;

import java.util.concurrent.Executors;



import org.jboss.netty.bootstrap.ClientBootstrap;

import org.jboss.netty.channel.ChannelHandlerContext;

import org.jboss.netty.channel.ChannelPipeline;

import org.jboss.netty.channel.ChannelPipelineFactory;

import org.jboss.netty.channel.ChannelStateEvent;

import org.jboss.netty.channel.Channels;

import org.jboss.netty.channel.SimpleChannelHandler;

import org.jboss.netty.channel.socket.nio.NioClientSocketChannelFactory;



public class HelloClient {

    public static void main(String args[]) {  

        // Client       

        ClientBootstrap bootstrap = new ClientBootstrap(  

                new NioClientSocketChannelFactory(  

                        Executors.newCachedThreadPool(),  

                        Executors.newCachedThreadPool()));  

        //                     (Handler)  

        bootstrap.setPipelineFactory(new ChannelPipelineFactory() {  

            @Override  

            public ChannelPipeline getPipeline() throws Exception {  

                return Channels.pipeline(new HelloClientHandler());  

            }  

        });  

        //       8000        

        bootstrap.connect(new InetSocketAddress(  

                "127.0.0.1", 8000));  

    }  

  

    private static class HelloClientHandler extends SimpleChannelHandler {  

  

  

        /** 

         *             ,  "Hello world, I'm client." 

         *  

         * @alia OneCoder 

         * @author lihzh 

         */  

        @Override  

        public void channelConnected(ChannelHandlerContext ctx,  

                ChannelStateEvent e) {  

            System.out.println("Hello world, I'm client.");  

        }  

    }  

}
View Code