Netty框架是基于事件机制的,简单说,就是发生什么事,就找相关处理方法。
依赖的pom
<dependency> <groupId>io.netty</groupId> <artifactId>netty</artifactId> <version>3.9.0.Final</version> </dependency>
服务器端
package com.netty; import org.jboss.netty.bootstrap.ServerBootstrap; import org.jboss.netty.channel.*; import org.jboss.netty.channel.socket.nio.NioServerSocketChannelFactory; import java.net.InetSocketAddress; import java.util.concurrent.Executors; /** * Created by IntelliJ IDEA. * User: wan * Date: 14-2-23 * Time: 下午1:34 */ public class HelloServer { public static void main(String args[])throws Exception{ // Server服务启动器 ServerBootstrap bootstrap = new ServerBootstrap( new NioServerSocketChannelFactory( Executors.newCachedThreadPool(), Executors.newCachedThreadPool())); // 设置一个处理客户端消息和各种消息事件的类(Handler) bootstrap .setPipelineFactory(new ChannelPipelineFactory() { @Override public ChannelPipeline getPipeline() throws Exception { return Channels.pipeline(new HelloServerHandler()); } }); // 开放8000端口供客户端访问。 bootstrap.bind(new InetSocketAddress(8000)); } private static class HelloServerHandler extends SimpleChannelHandler { /** * 当有客户端绑定到服务端的时候触发,打印"Hello world, I'm server." * * @alia OneCoder * @author lihzh */ @Override public void channelConnected( ChannelHandlerContext ctx, ChannelStateEvent e) { System.out.println("Hello world, I'm server."); } } }
客户端
package com.netty; import org.jboss.netty.bootstrap.ClientBootstrap; import org.jboss.netty.channel.*; import org.jboss.netty.channel.socket.nio.NioClientSocketChannelFactory; import java.net.InetSocketAddress; import java.util.concurrent.Executors; /** * Created by IntelliJ IDEA. * User: wan * Date: 14-2-23 * Time: 下午1:59 */ public class HelloClient { 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." * * @alia OneCoder * @author lihzh */ @Override public void channelConnected(ChannelHandlerContext ctx, ChannelStateEvent e) { System.out.println("Hello world, I'm client."); } } }
相关推荐
在本示例中,“Netty之helloworld”旨在为初学者提供一个简单的入门教程,帮助理解Netty的工作原理和基本用法。 首先,Netty的核心概念包括Bootstrap(引导类)、Channel(通道)、Handler(处理器)和EventLoop...
在本文中,我们将深入探讨Netty的基本概念,通过“Hello World”范例来理解其工作原理。 首先,让我们理解Netty的核心概念。Netty基于Java NIO(非阻塞I/O)构建,提供了高级API来处理网络通信。它包含以下几个关键...
在这个“Netty HelloWorld + HeartBeat Demo”中,我们将深入理解Netty的基本用法以及如何实现心跳机制。 首先,让我们从Netty HelloWorld Demo开始。这个Demo通常用于展示如何使用Netty创建一个简单的TCP服务器和...
Netty在IDEA中搭建HelloWorld服务端并对Netty执行流程与重要组件进行介绍示例代码;Netty在IDEA中搭建HelloWorld服务端并对Netty执行流程与重要组件进行介绍示例代码
1.netty入门 -- netty-helloworld 2.netty的粘包 - netty-stick 3.netty支持的各协议,包含messagepack、protobuf以及私有协议 - netty-protocol 4.netty开发httpserver服务 - netty-httpserver 5.netty开发...
本教程从基础概念出发,逐步深入到核心组件及其实现细节,并通过一个简单的“Hello World”示例,帮助读者理解如何构建一个完整的Netty应用。这不仅有助于初学者快速入门Netty,也为进阶学习打下了坚实的基础。
System.out.println("Hello world, I'm server."); } } } ``` - **`ServerBootstrap`**:创建服务端启动器。 - **`NioServerSocketChannelFactory`**:配置`EventLoopGroup`。 - **`ChannelPipelineFactory`**:...
近百节视频详细讲解,需要的小伙伴自行百度网盘下载,链接见附件,永久有效...2. Hello World 3. 组件 4. 双向通信 三. Netty 进阶 1. 粘包与半包 2. 协议设计与解析 3. 聊天室案例 四. 优化与源码 1. 优化 2. 源码分析
标题中的“一款基于Netty+Zookeeper+Spring实现的轻量级Java RPC框架”揭示了这个项目的核心技术栈,它整合了三个在分布式系统中广泛使用的开源库:Netty、Zookeeper和Spring。让我们逐一深入探讨这三个技术以及它们...
- **HelloWorld**:Netty的基本使用包括服务器端和客户端的搭建,以及事件驱动模型的理解。 - **组件**:Netty中的EventLoop负责事件处理,Handler处理不同类型的事件,ByteBuf作为缓冲区,提供了池化和直接内存的...
- **Hello World**:简单的服务器和客户端,展示最基本的建立连接和发送数据的过程。 - **心跳机制**:实现客户端与服务器之间的定期心跳检测,确保连接的有效性。 - **多路复用**:展示如何在一个Channel上处理多个...
:OK_hand: :netty-helloworld b。 『基础-通讯协议篇』 :OK_hand: :netty-http :OK_hand: netty-springboot-protobuf :OK_hand: netty-mqtt C。 『中级-数据传输篇』 Netty碰上关系型数据库 :monkey: ...
通过本教程,我们不仅了解了Netty的基础概念,还通过实际代码示例学习了如何使用Netty构建一个简单的服务器和客户端应用程序。这对于理解Netty的工作原理和如何在实际项目中应用Netty都是非常有帮助的。
通常来说,Netty官方例子中并不包含传统的"Hello World"示例,但我们可以自定义一个简单的Netty服务器和客户端来快速上手。以下是一个简单的Netty服务器和客户端的代码示例,以帮助理解Netty的使用。 在Netty服务器...
cassandra-netty-rest-simple 集成了Cassandra,Netty和JBoss RESTEasy的简单应用程序。 它提供了一个Hello World REST Web服务,可以通过。 调用服务时,它将Person的实例持久化到名为DEMO的Cassandra键空间中。
Netty的强大功能不仅仅停留在理论层面,下面通过一个简单的“HelloWorld”示例,展示如何使用Netty搭建网络通信服务。 #### HelloWorldServer 首先,创建一个`ServerBootstrap`实例,指定一个`...
1. **Hello World 示例**:通常,Netty 的第一个示例会是“Hello World”,展示如何创建一个简单的服务器和客户端,它们之间能互相发送消息。 2. **协议编解码器**:Netty 提供了多种编解码器,如 ...
随附的"netty-课程演示源码(附部分中文注释).zip"和"netty-chapter-1-Netty初步印象之HelloWorld.zip"、"netty-chapter-4-Netty案例雏形代码.zip"提供了一系列的示例代码,帮助读者更好地理解和应用Netty,通过...
01、Mina服务端helloWorld入门.flv 02、Mina客户端helloWorld入门.flv 03、Mina整体体系结构分析.flv 04、Mina学习之长短连接.flv 05、Mina学习之MinaIOService接口.flv 06、Mina学习之MinaIOFilter接口.flv ...