`

netty echo 例子

 
阅读更多

// ECHO 协议,服务器实现

 

package com.bigdata.jboss.basic;

import org.jboss.netty.channel.Channel;
import org.jboss.netty.channel.ChannelHandlerContext;
import org.jboss.netty.channel.ExceptionEvent;
import org.jboss.netty.channel.MessageEvent;
import org.jboss.netty.channel.SimpleChannelHandler;

public class EchoServerHandler extends SimpleChannelHandler{

	@Override
	public void messageReceived(ChannelHandlerContext ctx, MessageEvent e)
			throws Exception {
		Channel channel = e.getChannel();
		channel.write(e.getMessage());
	}

	@Override
	public void exceptionCaught(ChannelHandlerContext ctx, ExceptionEvent e)
			throws Exception {
		e.getCause().printStackTrace();
		e.getChannel().close();
	}

}
package com.tcloud.bigdata.jboss.basic;

import java.net.InetSocketAddress;
import java.util.concurrent.Executors;

import org.jboss.netty.bootstrap.ServerBootstrap;
import org.jboss.netty.channel.ChannelFactory;
import org.jboss.netty.channel.ChannelPipeline;
import org.jboss.netty.channel.ChannelPipelineFactory;
import org.jboss.netty.channel.Channels;
import org.jboss.netty.channel.socket.nio.NioServerSocketChannelFactory;

public class EchoServer {

	/**
	 * @param args
	 */
	public static void main(String[] args) {
		ChannelFactory factory = new NioServerSocketChannelFactory(Executors.newCachedThreadPool(),Executors.newCachedThreadPool());
		ServerBootstrap bootstrap = new ServerBootstrap(factory);
		bootstrap.setPipelineFactory(new ChannelPipelineFactory() {
			
			public ChannelPipeline getPipeline() throws Exception {
				return Channels.pipeline(new EchoServerHandler());
			}
		});
		bootstrap.setOption("child.tcpNoDelay", true);
		bootstrap.setOption("child.keepAlive",true);
		bootstrap.bind(new InetSocketAddress(8080));
		System.out.println("Echo server started");
	}

}

 //ECHO 服务器运行代码

 

package com.bigdata.jboss.basic;

import java.net.InetSocketAddress;
import java.util.concurrent.Executors;

import org.jboss.netty.bootstrap.ServerBootstrap;
import org.jboss.netty.channel.ChannelFactory;
import org.jboss.netty.channel.ChannelPipeline;
import org.jboss.netty.channel.ChannelPipelineFactory;
import org.jboss.netty.channel.Channels;
import org.jboss.netty.channel.socket.nio.NioServerSocketChannelFactory;

public class EchoServer {

	/**
	 * @param args
	 */
	public static void main(String[] args) {
		ChannelFactory factory = new NioServerSocketChannelFactory(Executors.newCachedThreadPool(),Executors.newCachedThreadPool());
		ServerBootstrap bootstrap = new ServerBootstrap(factory);
		bootstrap.setPipelineFactory(new ChannelPipelineFactory() {
			
			public ChannelPipeline getPipeline() throws Exception {
				return Channels.pipeline(new EchoServerHandler());
			}
		});
		bootstrap.setOption("child.tcpNoDelay", true);
		bootstrap.setOption("child.keepAlive",true);
		bootstrap.bind(new InetSocketAddress(8080));
		System.out.println("Echo server started");
	}

}

 

具体解释参考写道

 

 

分享到:
评论

相关推荐

    java Netty 框架例子源码.rar

    这个压缩包文件"java Netty 框架例子源码.rar"很可能包含了一系列示例代码,帮助我们了解和学习如何在实际项目中使用 Netty。 Netty 的核心组件包括: 1. **Channel**:是 Netty 中的基本概念,代表一个打开的连接...

    netty官方例子

    这个“netty官方例子”压缩包提供了一系列的示例代码,帮助开发者更好地理解和运用Netty框架。这些例子是基于Netty 4版本,已经整理为可直接运行的Maven工程,便于开发者在本地进行实践和学习。 首先,我们要了解...

    《Netty实战》中的 echo 代码-netty-echo.zip

    Echo服务是网络编程中常见的例子,主要用于测试网络连接和数据传输。在Netty中,echo服务通过创建一个ServerBootstrap实例,配置并启动一个Acceptor(监听器)来监听指定端口的连接请求。当客户端连接到服务器时,...

    java-netty:netty框架例子代码

    在实际应用中,`java-netty-master` 可能包含了简单的服务器和客户端示例,如 Echo Server(服务器接收并回显客户端发送的数据)和 Time Client(客户端向服务器请求当前时间)。通过这些例子,你可以学习如何配置 ...

    netty的入门经典例子的使用

    这个“netty的入门经典例子的使用”很可能是为了引导初学者了解和掌握 Netty 的基本用法和核心概念。下面将详细阐述 Netty 的基础知识及其在实际应用中的关键点。 首先,Netty 提供了一个高度可定制的事件驱动的...

    netty例子 官方

    这个“netty例子 官方”压缩包很可能是官方提供的Netty使用示例,帮助开发者更好地理解和应用Netty框架。下面将详细探讨Netty的一些核心概念和应用场景。 1. **Netty概述**: Netty 是由 JBoss 提供的一个开源框架...

    netty5.0 jar包 官方例子_改 中文手册

    1. **Echo Server**:这是最基础的例子,服务器接收客户端发送的数据并回显,展示了基本的Channel和Pipeline使用。 2. **Time Server**:服务器向客户端发送当前时间,演示了如何处理不同类型的Message。 3. **...

    Netty3.x 源码解析

    以Netty中的一个简单EchoServer为例,这个服务器能够接收客户端发送的消息并将其回显给客户端。在该示例中,使用ServerBootstrap来配置服务端,并通过设置ChannelPipeline来处理业务逻辑。这里使用到的...

    netty5.0 jar包和例子

    例如,你可以创建一个简单的Echo服务器,它将接收到的数据原样返回给客户端,以验证Netty环境是否正确配置。 总的来说,Netty 5.0是一个强大的工具,适用于开发高并发、低延迟的网络应用。通过学习提供的jar包和...

    Netty 框架学习 —— 第一个 Netty 应用(csdn)————程序.pdf

    在本篇关于“Netty框架学习——第一个Netty应用”的文章中,我们将深入理解如何使用Netty构建一个简单的Echo服务器和客户端。Netty是一个高性能、异步事件驱动的网络应用程序框架,广泛应用于Java领域的服务器开发。...

    netty5长连接.自动重连

    在 Netty 中,这可能是一个简单的 Echo 示例,用于测试网络连接和数据传输。虽然这个特定的文件名没有提供详细实现,但你可以创建一个 ChannelInboundHandler 来丢弃所有接收到的 ByteBuf,以此模拟一个只关注连接...

    essential-netty-in-action.pdf

    书中通过一个简单的echo服务器和客户端的例子,向开发者展示了如何编写、编译和运行一个Netty应用。这个例子覆盖了Netty应用的基本结构,包括Channel(通道)、EventLoop(事件循环)、以及I/O操作。 Netty中的...

    netty-in-action中文版

    - **WebSocket程序示例**:通过具体的例子展示如何使用Netty实现WebSocket服务器和客户端。 - **添加WebSocket支持**:介绍如何在现有的Netty应用中添加WebSocket的支持。 - **测试程序**:提供测试WebSocket功能的...

    Netty4.0.10 jar包 及 源代码 和 例子

    示例项目通常涵盖基础的Echo服务、HTTP服务器、WebSocket服务器等,这些例子展示了如何配置Pipeline,添加合适的Handler,以及如何处理不同类型的网络事件。通过分析和运行这些示例,开发者可以快速上手Netty,并将...

    JavaNetty客户端与服务器

    这个简单的例子展示了Netty的基本用法,包括设置服务器和客户端的Bootstrap、创建自定义的ChannelHandler以及进行数据的读写操作。然而,Netty的强大之处还在于它的高度可扩展性和丰富的功能,如流式API、零拷贝、多...

    Essential Netty In Action

    标题“Essential Netty In Action”表明本文是一...综上所述,本书通过具体例子和理论知识的结合,深入浅出地介绍Netty框架的核心概念和高级特性,非常适合Java网络编程初学者以及希望进一步深化对Netty理解的开发者。

    netty实战-netty-thing.zip

    7. **实战项目“netty-thing-master”**:这个项目可能是为了演示Netty如何用于实际的服务器开发,可能包括简单的Echo服务、聊天室应用、文件传输等。通过阅读源码,我们可以了解Netty如何处理连接、读写事件,以及...

    Netty 3.2 用户手册

    Netty是一款由Jboss开发的高效网络应用开发框架,它基于Java的NIO(New I/O)类库,提供了一个异步...通过阅读手册并实践其中的例子,开发者可以快速掌握Netty框架,进而在项目中实现高性能、高可靠性的网络通信功能。

    netty-demos.zip

    Echo 示例是Netty中最基础的例子,演示了如何创建一个简单的回显服务器。服务器接收客户端发送的数据,并原样返回。这个例子可以帮助理解Netty的ByteBuf数据传输机制以及ChannelHandler的工作原理。 3. **Protocol...

    netty4用户指南

    8. 实战示例:本指南可能包含了创建简单的Echo服务、HTTP服务器、WebSocket服务器等实战例子,帮助读者掌握Netty的实际应用。 9. 扩展与维护:Netty的设计允许开发者方便地扩展和维护网络应用,如添加新的Handler、...

Global site tag (gtag.js) - Google Analytics