`
ssxxjjii
  • 浏览: 950326 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

Netty小demo

 
阅读更多

最近一段时间一直研究聊天程序,学习了nio的知识,以后会和大家分享的,今天写了一个可以运行看到结果的netty helloworld程序,这个程序虽然简单,但从这个程序可以知道netty的运行流程,希望对初学者有所帮助。

第一步:建立一个maven项目,或者读者可以自己导入netty依赖包

Java代码  收藏代码
  1. <dependency>  
  2.       <groupId>io.netty</groupId>  
  3.       <artifactId>netty</artifactId>  
  4.       <version>3.5.6.Final</version>  
  5.  </dependency>  

 现在netty 4.0已经出来了,因为3.x版本的资料比较多有利于学习,先从3.x开始了,以后会继续出4.x的学习笔记的,呵呵,上程序了

第二步:复制下面代码到项目中

 

Java代码  收藏代码
  1. package com.my.day1;  
  2.   
  3. import java.net.InetSocketAddress;  
  4. import java.util.concurrent.Executors;  
  5.   
  6. import org.jboss.netty.bootstrap.ServerBootstrap;  
  7. import org.jboss.netty.channel.Channel;  
  8. import org.jboss.netty.channel.ChannelHandlerContext;  
  9. import org.jboss.netty.channel.ChannelPipeline;  
  10. import org.jboss.netty.channel.ChannelStateEvent;  
  11. import org.jboss.netty.channel.MessageEvent;  
  12. import org.jboss.netty.channel.SimpleChannelHandler;  
  13. import org.jboss.netty.channel.socket.nio.NioServerSocketChannelFactory;  
  14. import org.jboss.netty.handler.codec.string.StringDecoder;  
  15. import org.jboss.netty.handler.codec.string.StringEncoder;  
  16.   
  17. /**    
  18.  * @Title: NettyDemo.java  
  19.  * @Package com.my.day1  
  20.  * @Description: 一个类完整运行netty,运行就能看到结果 
  21.  * @author jimmy lovelyxuehanxin@163.com    
  22.  * @date 2013-4-16 下午9:38:29  
  23.  */  
  24. public class NettyDemo {  
  25.     public static void main(String[] args) {  
  26.         NioServer server = new NioServer();  
  27.     }  
  28. }  
  29.   
  30. class NioServer{  
  31.     ServerBootstrap bootstrap;  
  32.     Channel parentChannel;  
  33.     InetSocketAddress localAddress;  
  34.     MyChannelHandler channelHandler = new MyChannelHandler();  
  35.     public NioServer(){  
  36.     bootstrap = new ServerBootstrap(new NioServerSocketChannelFactory(  
  37.             Executors.newCachedThreadPool(), Executors.newCachedThreadPool()));  
  38.       
  39.       
  40.     ChannelPipeline pineline = bootstrap.getPipeline();  
  41.     // String格式字符串解码写的时候都会经过这个过滤器处理  
  42.     pineline.addLast("encode"new StringEncoder());  
  43.     // 接受信息的时候会被处理  
  44.     pineline.addLast("decode"new StringDecoder());  
  45.     // 自定义处理类,我们的业务一般从这个类开始  
  46.     pineline.addLast("servercnfactory", channelHandler);  
  47.     bootstrap.bind(new InetSocketAddress(8080));  
  48.     }  
  49.       
  50. }  
  51. // 处理channel中的数据,SimpleChannelHandler帮我们实现好了很多有用户的方法这里就只重写了几个方法  
  52. class MyChannelHandler extends SimpleChannelHandler{  
  53.   
  54.     // netty默认信息接受入口  
  55.     @Override  
  56.     public void messageReceived(ChannelHandlerContext ctx, MessageEvent e)  
  57.             throws Exception {  
  58.         System.out.println("接受到的信息" + e.getMessage());  
  59.         // 返回信息可以在dos对话框中看到自己输的内容  
  60.         e.getChannel().write(e.getMessage());  
  61.         super.messageReceived(ctx, e);  
  62.     }  
  63.   
  64.     @Override  
  65.     public void channelConnected(ChannelHandlerContext ctx, ChannelStateEvent e)  
  66.             throws Exception {  
  67.         System.out.println("channel Connected......");  
  68.         super.channelConnected(ctx, e);  
  69.     }  
  70.   
  71.     @Override  
  72.     public void channelClosed(ChannelHandlerContext ctx, ChannelStateEvent e)  
  73.             throws Exception {  
  74.         System.out.println("channelClosed");  
  75.         super.channelClosed(ctx, e);  
  76.     }  
  77.       
  78. }  

 第三步:运行上面的代码,cmd打开dos窗口输入telnet 127.0.0.1 8080 输入内容 程序就可以打印你输入的内容并且可以在dos命令框里打印出你输入的内容。

 

总结:这个列子很简单,可以清楚程序怎么运行的,对理解netty很有帮助

分享到:
评论
1 楼 hzxlb910 2016-08-04  
代码不全吧。跑不起来

相关推荐

    springboot整合netty的demo

    SpringBoot和Netty都是Java开发领域中的重要工具。SpringBoot以其快速、简洁的特性,极大地简化了Spring应用的初始...通过这个Demo,开发者能够更好地理解和掌握如何在SpringBoot项目中利用Netty实现高性能的网络服务。

    netty5.0官方自带的demo

    在本文中,我们将深入探讨Netty 5.0官方提供的示例(demo),这些示例是学习和理解Netty核心概念与功能的重要资源。 1. **Netty的异步模型** Netty基于Java NIO(非阻塞I/O)构建,其核心是事件驱动和异步处理。在...

    android+netty 的demo

    这个"android+netty 的demo"可能是为了展示如何在Android应用中集成和使用Netty库。 Netty的核心理念是提供一个高度可定制和易用的网络编程模型,它简化了TCP、UDP以及HTTP等协议的实现。在Android上使用Netty,...

    netty实战教程、netty代码demo

    Netty 是一个高性能、异步事件驱动的网络应用程序框架,用于快速开发可维护的高性能协议服务器和客户端。这个实战教程和代码示例是为那些希望深入理解并运用 Netty 的开发者准备的。以下是对 Netty 的详细介绍以及...

    protobuf-netty-Demo

    protobuf-netty-Demo

    netty_demo-master.zip

    本示例项目"Netty_demo-master"通过Springboot集成Netty,构建了一个TCP Server,用于与嵌入式设备等进行TCP通信,并提供了RESTful接口供其他客户端调用。下面将详细探讨这一实现过程及其关键技术。 首先,...

    netty4.0 demo

    这个"Netty4.0 demo"压缩包包含了一些Netty 4.0版本的应用示例代码,可以帮助我们更好地理解和学习Netty的工作原理以及如何在实际项目中运用它。 1. **Netty简介** Netty 是由JBOSS组织开发的一个开源项目,最初...

    Unity与Netty通信Demo

    Unity与Netty通信Demo是一个示例项目,展示了如何在Unity游戏引擎中利用网络库Netty进行数据通信。这个Demo提供了可直接应用于实际项目的代码,帮助开发者理解如何在Unity的C#环境中与Java后端服务器通过Netty进行...

    netty 4 demo

    这个“netty 4 demo”是基于Netty 4的一个示例项目,出自《Netty权威指南》这本书,旨在帮助开发者更好地理解和应用Netty框架。 在Netty 4中,主要的改进包括: 1. **Java 7和8的支持**:Netty 4全面支持Java 7和8...

    netty入门Demo源码

    一个最简单的netty应用 使用:运行EchoServer,打开cmd命令窗口。输入telnet localhost 8080.成功连接后,输入字符,可在ide的控制台输出。 3.第二个示例 com.time’ Netty服务端与客户端,数据的发送与接收 ...

    android netty使用demo

    在"android netty使用demo"中,我们看到的是一个简单的示例,它演示了如何在Android环境中搭建Netty客户端和服务端,并实现它们之间的数据交互。首先,我们需要理解Netty的核心概念:Bootstrap、Channel、Pipeline和...

    Netty学习Demo,来自网友的博客

    NettyDemo,Marshalling,将以为网友的博文代码丰富并产出代码内容。博客地址:https://blog.csdn.net/haoyuyang/article/details/53243785

    基于Netty框架的demo项目

    这是一个基于高并发网络框架-Netty框架的demo项目,旨在展示Netty服务端与客户端的基础使用方式,并深入探讨了自定义编解码器以及心跳机制的实现。本demo紧密结合了本人发布的《初识Netty》一文中的示例,为学习者...

    Netty Demo

    这个"Netty Demo"项目提供了一个实践性的示例,旨在帮助你深入理解如何在实际应用中运用Netty。下面我们将详细探讨Netty的一些核心概念和技术。 首先,Netty 的异步事件驱动模型是其高效性能的关键。它基于Java NIO...

    Netty即时通讯项目Demo

    Netty即时通讯项目Demo是一个基于Netty框架的简单即时通讯应用示例,旨在帮助初学者了解如何利用Netty实现一个基础的群聊功能。Netty是Java领域内一个高性能、异步事件驱动的网络应用程序框架,它极大地简化了网络...

    netty简单 的demo很好理解

    这个“netty简单的demo很好理解”的例子,很可能是为了展示Netty的基本用法,帮助初学者理解其核心概念。我们将通过以下几个方面来深入探讨这个Demo: 1. **异步编程模型**: Netty 使用了Java NIO(非阻塞I/O)...

    netty-demo.zip

    这个“netty-demo.zip”压缩包显然包含了Netty的学习示例,可以帮助我们深入理解Netty的工作原理和使用方法。让我们来详细探讨一下Netty的相关知识点。 一、Netty简介 Netty 是由JBOSS提供的一个Java开源框架,最初...

    netty-demo

    Netty是由JBOSS提供的一个java开源框架。Netty提供异步的、事件驱动的网络应用程序框架和工具,用以快速开发高性能、高可靠性的网络服务器和客户端程序dsf。 也就是说,Netty 是一个基于NIO的客户,服务器端编程框架...

    使用netty的简单demo

    作为一个学Java的,如果没有研究过Netty,那么你对Java语言的使用和理解仅仅停留在表面水平。 如果你想知道Nginx是怎么写出来的,如果你想知道Tomcat和Jetty是如何实现的,如果你也想实现一个简单的Redis服务器,那...

    netty代码demo.rar

    这个“netty代码demo.rar”文件很可能是包含了一些Netty的基础使用示例,帮助开发者理解和学习Netty的工作原理以及如何在实际项目中应用。 Netty的核心特性包括: 1. **异步I/O模型**:Netty基于Java NIO(非阻塞I...

Global site tag (gtag.js) - Google Analytics