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

Netty 学习 hello world

 
阅读更多

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之helloworld”旨在为初学者提供一个简单的入门教程,帮助理解Netty的工作原理和基本用法。 首先,Netty的核心概念包括Bootstrap(引导类)、Channel(通道)、Handler(处理器)和EventLoop...

    netty之hello world

    在本文中,我们将深入探讨Netty的基本概念,通过“Hello World”范例来理解其工作原理。 首先,让我们理解Netty的核心概念。Netty基于Java NIO(非阻塞I/O)构建,提供了高级API来处理网络通信。它包含以下几个关键...

    Netty HelloWorld + HeartBeat Demo

    在这个“Netty HelloWorld + HeartBeat Demo”中,我们将深入理解Netty的基本用法以及如何实现心跳机制。 首先,让我们从Netty HelloWorld Demo开始。这个Demo通常用于展示如何使用Netty创建一个简单的TCP服务器和...

    Netty在IDEA中搭建HelloWorld服务端并对Netty执行流程与重要组件进行介绍示例代码.rar

    Netty在IDEA中搭建HelloWorld服务端并对Netty执行流程与重要组件进行介绍示例代码;Netty在IDEA中搭建HelloWorld服务端并对Netty执行流程与重要组件进行介绍示例代码

    nett权威指南,学习整理的demo代码

    1.netty入门 -- netty-helloworld 2.netty的粘包 - netty-stick 3.netty支持的各协议,包含messagepack、protobuf以及私有协议 - netty-protocol 4.netty开发httpserver服务 - netty-httpserver 5.netty开发...

    netty学习教程

    本教程从基础概念出发,逐步深入到核心组件及其实现细节,并通过一个简单的“Hello World”示例,帮助读者理解如何构建一个完整的Netty应用。这不仅有助于初学者快速入门Netty,也为进阶学习打下了坚实的基础。

    netty学习笔记

    System.out.println("Hello world, I'm server."); } } } ``` - **`ServerBootstrap`**:创建服务端启动器。 - **`NioServerSocketChannelFactory`**:配置`EventLoopGroup`。 - **`ChannelPipelineFactory`**:...

    Netty网络编程视频教程

    近百节视频详细讲解,需要的小伙伴自行百度网盘下载,链接见附件,永久有效...2. Hello World 3. 组件 4. 双向通信 三. Netty 进阶 1. 粘包与半包 2. 协议设计与解析 3. 聊天室案例 四. 优化与源码 1. 优化 2. 源码分析

    一款基于Netty+Zookeeper+Spring实现的轻量级Java RPC框架。提供服务注册,发现,负载均衡,.zip

    标题中的“一款基于Netty+Zookeeper+Spring实现的轻量级Java RPC框架”揭示了这个项目的核心技术栈,它整合了三个在分布式系统中广泛使用的开源库:Netty、Zookeeper和Spring。让我们逐一深入探讨这三个技术以及它们...

    Netty大纲-同步netty专栏

    - **HelloWorld**:Netty的基本使用包括服务器端和客户端的搭建,以及事件驱动模型的理解。 - **组件**:Netty中的EventLoop负责事件处理,Handler处理不同类型的事件,ByteBuf作为缓冲区,提供了池化和直接内存的...

    netty代码demo.rar

    - **Hello World**:简单的服务器和客户端,展示最基本的建立连接和发送数据的过程。 - **心跳机制**:实现客户端与服务器之间的定期心跳检测,确保连接的有效性。 - **多路复用**:展示如何在一个Channel上处理多个...

    netty-learning-example:Netty实践学习案例,见微知著!带着你的心,跟着教程。我相信你行欧

    :OK_hand: :netty-helloworld b。 『基础-通讯协议篇』 :OK_hand: :netty-http :OK_hand: netty-springboot-protobuf :OK_hand: netty-mqtt C。 『中级-数据传输篇』 Netty碰上关系型数据库 :monkey: ...

    Java NIO框架Netty教程.pdf

    通过本教程,我们不仅了解了Netty的基础概念,还通过实际代码示例学习了如何使用Netty构建一个简单的服务器和客户端应用程序。这对于理解Netty的工作原理和如何在实际项目中应用Netty都是非常有帮助的。

    Java_NIO框架Netty教程.pdf

    通常来说,Netty官方例子中并不包含传统的"Hello World"示例,但我们可以自定义一个简单的Netty服务器和客户端来快速上手。以下是一个简单的Netty服务器和客户端的代码示例,以帮助理解Netty的使用。 在Netty服务器...

    cassandra-netty-rest-simple:Netty上部署的Hello World REST Web服务在调用时将一个Person对象插入Cassandra

    cassandra-netty-rest-simple 集成了Cassandra,Netty和JBoss RESTEasy的简单应用程序。 它提供了一个Hello World REST Web服务,可以通过。 调用服务时,它将Person的实例持久化到名为DEMO的Cassandra键空间中。

    深入浅出Netty

    Netty的强大功能不仅仅停留在理论层面,下面通过一个简单的“HelloWorld”示例,展示如何使用Netty搭建网络通信服务。 #### HelloWorldServer 首先,创建一个`ServerBootstrap`实例,指定一个`...

    Test_netty_

    1. **Hello World 示例**:通常,Netty 的第一个示例会是“Hello World”,展示如何创建一个简单的服务器和客户端,它们之间能互相发送消息。 2. **协议编解码器**:Netty 提供了多种编解码器,如 ...

    netty-master.zip

    随附的"netty-课程演示源码(附部分中文注释).zip"和"netty-chapter-1-Netty初步印象之HelloWorld.zip"、"netty-chapter-4-Netty案例雏形代码.zip"提供了一系列的示例代码,帮助读者更好地理解和应用Netty,通过...

    Java视频教程 Java游戏服务器端开发 Netty NIO AIO Mina视频教程

    01、Mina服务端helloWorld入门.flv 02、Mina客户端helloWorld入门.flv 03、Mina整体体系结构分析.flv 04、Mina学习之长短连接.flv 05、Mina学习之MinaIOService接口.flv 06、Mina学习之MinaIOFilter接口.flv ...

Global site tag (gtag.js) - Google Analytics