最近一段时间一直研究聊天程序,学习了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很有帮助
相关推荐
1.Netty 是由 JBOSS 提供的一个 Java 开源框架,现为 Github 上的独立项目。 2.Netty 是一个 异步的、 基于事件驱动的网络应用框架,用以快速开发高性能、高可靠性的网络 IO 程序。
Netty基础,用于学习Netty,参考黑马程序员的netty教程
这个“自动Netty笔记111”可能是某个开发者或学习者记录的一系列关于Netty学习过程中的关键点和理解。下面将详细阐述Netty的相关知识点。 1. **异步事件驱动模型**: Netty采用了非阻塞I/O模型,基于Java NIO(Non...
- Netty采用了一种多线程模型,其中每个线程可以处理多个Channel。 - 一个Channel通常对应于一个网络连接。 - 这种模型有助于提高系统的并发能力,尤其是在处理大量连接时。 2. **线程阻塞的影响**: - 如果...
这个“Netty学习资料.zip”压缩包包含了韩顺平老师关于 Netty 的一系列教学资源,包括资料、笔记、课件、代码和软件,这些都是深入理解和实践 Netty 技术的重要参考资料。 首先,资料部分可能包含了一些关于 Netty ...
Netty 是一个高性能、异步事件驱动的网络应用程序框架,用于快速开发可维护的高性能协议服务器和客户端。它是 Java 平台上的一个开源项目,广泛应用于分布式系统、云计算平台、游戏服务器、聊天应用以及大数据传输等...
Netty笔记二主要聚焦在如何使用Netty框架在服务端和客户端之间发送对象。Netty是一个高性能、异步事件驱动的网络应用框架,用于快速开发可维护的高性能协议服务器和客户端。这篇博客提供了可运行的源码,方便读者...
Netty 是一个高性能、异步事件驱动的网络应用程序框架,常用于开发高并发、高性能的服务器和客户端应用。WebSocket 协议则是一种在单个TCP连接上进行全双工通信的协议,它允许服务器和客户端实时交换数据,常用于...
Netty5完整例子,里面包含编码,解码,心跳处理等,代码可用。 例子的内容是:服务端启动,客户端启动,客户端连接服务器后服务器发一个Message的对象给客户端,客户端接受并打印Message里边的内容。编解码的处理为:...
这个“netty-dome”压缩包提供了一个可以运行的 Netty 示例,帮助用户了解和学习如何在实际项目中应用 Netty。下面我们将深入探讨 Netty 的核心概念和这个 demo 演示了哪些知识点。 首先,Netty 的核心概念包括: ...
总之,通过这三个简单的例子,你可以理解Netty的基本工作原理,包括服务器和客户端的搭建,以及处理器链的配置。继续探索Netty提供的丰富功能,如编解码器、心跳机制和多线程模型,将有助于你进一步提升在网络编程...
在“Netty3.5代码例子”中,你可能会看到以下几个关键组件: - **Bootstrap**:这是启动服务器或客户端的入口点,配置网络连接的各种参数。 - **ServerBootstrap**:用于创建服务器端的Bootstrap。 - **...
Netty 的主要特点是基于 NIO 的客户、服务器端编程框架,使用 Netty 可以确保你快速和简单的开发出一个网络应用,例如实现了某种协议的客户、服务端应用。Netty 支持 TCP 和 UDP 的 socket 服务,并且在处理大容量...
6. **Netty源码剖析**:笔记-12探讨了Netty的启动过程,这对于理解Netty如何初始化和运行至关重要。此外,这也有助于开发者在遇到问题时能更深入地排查和解决问题。 7. **心跳检测和空闲连接处理**:笔记-7讲述了...
通过 Netty 的官网例子,你可以深入学习这些概念并了解如何在实际项目中运用。官方示例通常覆盖了基础到高级的各种用法,是理解和掌握 Netty4.0 的良好起点。你可以从 netty-4.0 压缩包中的源代码开始,逐步分析和...
在“netty proxy 代理例子”中,我们将会探讨如何利用 Netty 实现一个代理服务器,该代理服务器可以转发客户端的请求到目标服务器,并将响应回传给客户端。 首先,我们需要理解代理服务器的基本原理。代理服务器...
Netty 是一个高性能、异步事件驱动的网络应用程序框架,用于快速开发可维护的高性能协议服务器和客户端。它是Java领域非常流行的网络库,尤其在处理高并发、低延迟的网络应用中表现出色。本篇文章将深入探讨Netty的...
通过研究源码、阅读API文档和运行示例,开发者可以掌握Netty的精髓,提升网络编程能力,并在实际项目中发挥出Netty的强大性能。无论你是初学者还是经验丰富的开发者,这套资源都将助你在Netty的世界里游刃有余。
《基于Netty网络编程项目实战笔记》是一份深入探讨Netty框架在实际网络编程中的应用文档。Netty,作为一款高性能、异步事件驱动的网络应用程序框架,广泛应用于各种网络应用开发,包括服务器和客户端的实现。这份...
通过以上分析,我们可以看到Netty不仅提供了一个简洁易用的接口来简化网络编程,还具有高度可定制性和扩展性,使其成为开发高性能网络应用的理想选择。无论是对于初学者还是经验丰富的开发者来说,掌握Netty都是非常...