netty入门学习(2)-一个简单的netty实例
来源:互联网 发布:小米视频电话软件 编辑:程序博客网 时间:2024/05/16 00:44
一:服务端
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 NioServer {public static void main(String args[]){//Server服务启动器ServerBootstrap bootstrap = new ServerBootstrap(new NioServerSocketChannelFactory(Executors.newCachedThreadPool(),Executors.newCachedThreadPool()));//设置处理客户端消息和各种消息事件的类(Handler)bootstrap.setPipelineFactory(new ChannelPipelineFactory(){@Overridepublic ChannelPipeline getPipeline() throws Exception {return Channels.pipeline(new HelloServerHandler());}});//绑定8000端口供客户端访问bootstrap.bind(new InetSocketAddress(8000));}private static class HelloServerHandler extends SimpleChannelHandler{@Overridepublic void channelConnected(ChannelHandlerContext ctx,ChannelStateEvent e){System.out.println("Hello world,I'm server.");}}}
二:
客户端:
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 NioClient {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." */ @Override public void channelConnected(ChannelHandlerContext ctx, ChannelStateEvent e) { System.out.println("Hello world, I'm client."); } }}
- netty入门学习(2)-一个简单的netty实例
- Netty学习:搭建一个简单的Netty服务
- Netty学习:搭建一个简单的Netty服务
- netty的简单使用实例
- Netty-一个简单的服务器
- Netty学习:搭建一个简单的Netty服务(JAVA NIO 类库的异步通信框架)
- Netty学习:搭建一个简单的Netty服务(JAVA NIO 类库的异步通信框架)
- netty入门实例
- netty入门实例
- netty入门实例
- netty入门实例
- netty简单实例
- netty简单实例
- (socket-nio-netty学习-2)Netty基础入门
- Netty 实例学习一
- nio学习之netty入门(2)---netty中handler的执行顺序
- NIO-netty-入门学习
- netty入门学习
- Berkele DB安装
- 关于进程、线程和轻量级进程的一些笔记
- Android之Activity ContentProvider Service Broadcast,线程间通信,AIDL(二)
- 中断处理
- Linux SWAP 交换分区配置说明
- netty入门学习(2)-一个简单的netty实例
- Android2.3.7源码结构分析
- 虚函数与纯虚函数
- ActiveMQ 桥接
- Oracle中查看所有表和字段
- kdump
- log4cplus使用帮助文档基础详解
- CSDN问答频道“华章杯”6月排行榜活动开始,丰厚奖品等你拿
- EditeText 编辑框自定义边框以及背景