Netty笔记一(可以运行看到结果的简单例子)
来源:互联网 发布:零濡鸦之巫女剧情知乎 编辑:程序博客网 时间:2024/04/24 07:00
最近一段时间一直研究聊天程序,学习了nio的知识,以后会和大家分享的,今天写了一个可以运行看到结果的netty helloworld程序,这个程序虽然简单,但从这个程序可以知道netty的运行流程,希望对初学者有所帮助。
第一步:建立一个maven项目,或者读者可以自己导入netty依赖包
<dependency> <groupId>io.netty</groupId> <artifactId>netty</artifactId> <version>3.5.6.Final</version> </dependency>
现在netty 4.0已经出来了,因为3.x版本的资料比较多有利于学习,先从3.x开始了,以后会继续出4.x的学习笔记的,呵呵,上程序了
第二步:复制下面代码到项目中
package com.my.day1;import java.net.InetSocketAddress;import java.util.concurrent.Executors;import org.jboss.netty.bootstrap.ServerBootstrap;import org.jboss.netty.channel.Channel;import org.jboss.netty.channel.ChannelHandlerContext;import org.jboss.netty.channel.ChannelPipeline;import org.jboss.netty.channel.ChannelStateEvent;import org.jboss.netty.channel.MessageEvent;import org.jboss.netty.channel.SimpleChannelHandler;import org.jboss.netty.channel.socket.nio.NioServerSocketChannelFactory;import org.jboss.netty.handler.codec.string.StringDecoder;import org.jboss.netty.handler.codec.string.StringEncoder;/** * @Title: NettyDemo.java * @Package com.my.day1 * @Description: 一个类完整运行netty,运行就能看到结果 * @author jimmy lovelyxuehanxin@163.com * @date 2013-4-16 下午9:38:29 */public class NettyDemo {public static void main(String[] args) {NioServer server = new NioServer();}}class NioServer{ServerBootstrap bootstrap;Channel parentChannel;InetSocketAddress localAddress;MyChannelHandler channelHandler = new MyChannelHandler();public NioServer(){bootstrap = new ServerBootstrap(new NioServerSocketChannelFactory(Executors.newCachedThreadPool(), Executors.newCachedThreadPool()));ChannelPipeline pineline = bootstrap.getPipeline();// String格式字符串解码写的时候都会经过这个过滤器处理 pineline.addLast("encode", new StringEncoder()); // 接受信息的时候会被处理pineline.addLast("decode", new StringDecoder());// 自定义处理类,我们的业务一般从这个类开始pineline.addLast("servercnfactory", channelHandler);bootstrap.bind(new InetSocketAddress(8080));}}// 处理channel中的数据,SimpleChannelHandler帮我们实现好了很多有用户的方法这里就只重写了几个方法class MyChannelHandler extends SimpleChannelHandler{// netty默认信息接受入口@Overridepublic void messageReceived(ChannelHandlerContext ctx, MessageEvent e)throws Exception {System.out.println("接受到的信息" + e.getMessage());// 返回信息可以在dos对话框中看到自己输的内容e.getChannel().write(e.getMessage());super.messageReceived(ctx, e);}@Overridepublic void channelConnected(ChannelHandlerContext ctx, ChannelStateEvent e)throws Exception {System.out.println("channel Connected......");super.channelConnected(ctx, e);}@Overridepublic void channelClosed(ChannelHandlerContext ctx, ChannelStateEvent e)throws Exception {System.out.println("channelClosed");super.channelClosed(ctx, e);}}
第三步:运行上面的代码,cmd打开dos窗口输入telnet 127.0.0.1 8080 输入内容 程序就可以打印你输入的内容并且可以在dos命令框里打印出你输入的内容。
总结:这个列子很简单,可以清楚程序怎么运行的,对理解netty很有帮助
0 0
- Netty笔记一(可以运行看到结果的简单例子)
- Netty学习笔记<2>--简单的NIO例子
- 可以运行的 JNDI 例子
- 一个简单的Netty服务器例子
- Netty 处理简单HTTP请求的例子
- Netty客户端和服务器简单的例子
- netty demo 保证可以运行
- 【Netty】netty学习笔记一
- QPropertyAnimation动画 可以运行的例子
- Netty简单介绍和例子
- java netty服务器简单例子
- 3个netty5的例子,简单介绍netty的用法
- Netty5的例子,简单介绍Netty的用法
- 3个netty5的例子,简单介绍netty的用法
- Netty开发的例子
- 看到的redis简单例子,类似于抢票的非常简单例子
- 栈的简单使用和运行结果
- Netty学习笔记一
- mmpeg转码
- Spring Data MongoDB hello world example
- 设计模式-接口隔离
- reids集群安装
- Android Material Design 笔记 --- Metrics & keylines
- Netty笔记一(可以运行看到结果的简单例子)
- Eclipse Java注释模板设置详解
- 03.Java中如何遍历Map对象的4种方法
- lucene4.2自带demo
- 隐马尔科夫模型HMM
- Netty笔记二(发送对象--服务端客户端附可运行源码)
- 查找附近的人-mongodb的实现
- 保存一些cef相关的链接
- 欢迎使用CSDN-markdown编辑器