最近一段时间一直研究聊天程序,学习了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默认信息接受入口
- @Override
- public void messageReceived(ChannelHandlerContext ctx, MessageEvent e)
- throws Exception {
- System.out.println("接受到的信息" + e.getMessage());
- // 返回信息可以在dos对话框中看到自己输的内容
- e.getChannel().write(e.getMessage());
- super.messageReceived(ctx, e);
- }
- @Override
- public void channelConnected(ChannelHandlerContext ctx, ChannelStateEvent e)
- throws Exception {
- System.out.println("channel Connected......");
- super.channelConnected(ctx, e);
- }
- @Override
- public 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很有帮助
相关推荐
SpringBoot和Netty都是Java开发领域中的重要工具。SpringBoot以其快速、简洁的特性,极大地简化了Spring应用的初始...通过这个Demo,开发者能够更好地理解和掌握如何在SpringBoot项目中利用Netty实现高性能的网络服务。
在本文中,我们将深入探讨Netty 5.0官方提供的示例(demo),这些示例是学习和理解Netty核心概念与功能的重要资源。 1. **Netty的异步模型** Netty基于Java NIO(非阻塞I/O)构建,其核心是事件驱动和异步处理。在...
这个"android+netty 的demo"可能是为了展示如何在Android应用中集成和使用Netty库。 Netty的核心理念是提供一个高度可定制和易用的网络编程模型,它简化了TCP、UDP以及HTTP等协议的实现。在Android上使用Netty,...
Netty 是一个高性能、异步事件驱动的网络应用程序框架,用于快速开发可维护的高性能协议服务器和客户端。这个实战教程和代码示例是为那些希望深入理解并运用 Netty 的开发者准备的。以下是对 Netty 的详细介绍以及...
protobuf-netty-Demo
本示例项目"Netty_demo-master"通过Springboot集成Netty,构建了一个TCP Server,用于与嵌入式设备等进行TCP通信,并提供了RESTful接口供其他客户端调用。下面将详细探讨这一实现过程及其关键技术。 首先,...
这个"Netty4.0 demo"压缩包包含了一些Netty 4.0版本的应用示例代码,可以帮助我们更好地理解和学习Netty的工作原理以及如何在实际项目中运用它。 1. **Netty简介** Netty 是由JBOSS组织开发的一个开源项目,最初...
Unity与Netty通信Demo是一个示例项目,展示了如何在Unity游戏引擎中利用网络库Netty进行数据通信。这个Demo提供了可直接应用于实际项目的代码,帮助开发者理解如何在Unity的C#环境中与Java后端服务器通过Netty进行...
这个“netty 4 demo”是基于Netty 4的一个示例项目,出自《Netty权威指南》这本书,旨在帮助开发者更好地理解和应用Netty框架。 在Netty 4中,主要的改进包括: 1. **Java 7和8的支持**:Netty 4全面支持Java 7和8...
一个最简单的netty应用 使用:运行EchoServer,打开cmd命令窗口。输入telnet localhost 8080.成功连接后,输入字符,可在ide的控制台输出。 3.第二个示例 com.time’ Netty服务端与客户端,数据的发送与接收 ...
在"android netty使用demo"中,我们看到的是一个简单的示例,它演示了如何在Android环境中搭建Netty客户端和服务端,并实现它们之间的数据交互。首先,我们需要理解Netty的核心概念:Bootstrap、Channel、Pipeline和...
这是一个基于高并发网络框架-Netty框架的demo项目,旨在展示Netty服务端与客户端的基础使用方式,并深入探讨了自定义编解码器以及心跳机制的实现。本demo紧密结合了本人发布的《初识Netty》一文中的示例,为学习者...
NettyDemo,Marshalling,将以为网友的博文代码丰富并产出代码内容。博客地址:https://blog.csdn.net/haoyuyang/article/details/53243785
这个"Netty Demo"项目提供了一个实践性的示例,旨在帮助你深入理解如何在实际应用中运用Netty。下面我们将详细探讨Netty的一些核心概念和技术。 首先,Netty 的异步事件驱动模型是其高效性能的关键。它基于Java NIO...
Netty即时通讯项目Demo是一个基于Netty框架的简单即时通讯应用示例,旨在帮助初学者了解如何利用Netty实现一个基础的群聊功能。Netty是Java领域内一个高性能、异步事件驱动的网络应用程序框架,它极大地简化了网络...
这个“netty简单的demo很好理解”的例子,很可能是为了展示Netty的基本用法,帮助初学者理解其核心概念。我们将通过以下几个方面来深入探讨这个Demo: 1. **异步编程模型**: Netty 使用了Java NIO(非阻塞I/O)...
这个“netty-demo.zip”压缩包显然包含了Netty的学习示例,可以帮助我们深入理解Netty的工作原理和使用方法。让我们来详细探讨一下Netty的相关知识点。 一、Netty简介 Netty 是由JBOSS提供的一个Java开源框架,最初...
Netty是由JBOSS提供的一个java开源框架。Netty提供异步的、事件驱动的网络应用程序框架和工具,用以快速开发高性能、高可靠性的网络服务器和客户端程序dsf。 也就是说,Netty 是一个基于NIO的客户,服务器端编程框架...
作为一个学Java的,如果没有研究过Netty,那么你对Java语言的使用和理解仅仅停留在表面水平。 如果你想知道Nginx是怎么写出来的,如果你想知道Tomcat和Jetty是如何实现的,如果你也想实现一个简单的Redis服务器,那...
这个“netty代码demo.rar”文件很可能是包含了一些Netty的基础使用示例,帮助开发者理解和学习Netty的工作原理以及如何在实际项目中应用。 Netty的核心特性包括: 1. **异步I/O模型**:Netty基于Java NIO(非阻塞I...