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

netty开发基本步骤

 
阅读更多

Netty的使用虽然非常灵活,但是基本的步骤很固定,像八股文一样。现总结如下:

1. You create a ServerBootstrap instance to bootstrap the server and bind it later.

2. You create and assign the NioEventLoopGroup instances to handle event processing, such as accepting new connections, receiving data, writing data, and so on.

3. You specify the local InetSocketAddress to which the server binds.

4.You set up a childHandler that executes for every accepted connection.

5. After everything is set up, you call the ServerBootstrap.bind() method to bind the server.

 

服务端代码示例:

 

package com.netty.examples.discard;

 

import io.netty.bootstrap.ServerBootstrap;

import io.netty.channel.ChannelFuture;

import io.netty.channel.ChannelInitializer;

import io.netty.channel.ChannelOption;

import io.netty.channel.EventLoopGroup;

import io.netty.channel.nio.NioEventLoopGroup;

import io.netty.channel.socket.SocketChannel;

import io.netty.channel.socket.nio.NioServerSocketChannel;

import io.netty.handler.logging.LogLevel;

import io.netty.handler.logging.LoggingHandler;

public class DiscardServer {

private int port;

 

public DiscardServer(int port) {

this.port = port;

}

 

public void run() throws Exception {

EventLoopGroup bossGroup = new NioEventLoopGroup();

EventLoopGroup workerGroup = new NioEventLoopGroup();

 

try {

ServerBootstrap b = new ServerBootstrap();

b.group(bossGroup, workerGroup)

.channel(NioServerSocketChannel.class)

.handler(new LoggingHandler(LogLevel.INFO))

.childHandler(new ChannelInitializer<SocketChannel>() {

@Override

public void initChannel(SocketChannel ch)

throws Exception {

ch.pipeline().addLast(

new DiscardServerHandler());

}

}).option(ChannelOption.SO_BACKLOG, 128)

.childOption(ChannelOption.SO_KEEPALIVE, true);

 

// Bind and start to accept incoming connections.

ChannelFuture f = b.bind(port).sync();

 

// Wait until the server socket is closed.

// In this example, this does not happen, but you can do that to

// gracefully

// shut down your server.

f.channel().closeFuture().sync();

} finally {

workerGroup.shutdownGracefully();

bossGroup.shutdownGracefully();

}

}

 

public static void main(String[] args) throws Exception{

int port;

 

if (args.length > 0) {

port = Integer.parseInt(args[0]);

} else {

port = 8080;

}

 

new DiscardServer(port).run();

}

}

分享到:
评论

相关推荐

    netty之UDP协议开发

    总的来说,这个“netty之UDP协议开发”项目涵盖了Netty的基本使用,以及如何利用UDP协议进行通信。理解这些内容,对于开发者来说,能够增强在网络编程领域的技能,特别是对于需要处理高并发、低延迟的场景。

    Android基于Netty框架实现通信

    在Android开发中,为了实现高效的网络通信,开发者常常会选择使用Netty框架。Netty是一个高性能、异步事件驱动的网络应用程序框架,适用于多种协议的服务器和客户端应用。本篇文章将详细探讨如何在Android环境中利用...

    基于Netty开发一个简易webSocket聊天室

    "基于Netty开发一个简易webSocket聊天室" 这个标题表明我们将探讨如何使用Netty框架来构建一个简单的WebSocket聊天应用。WebSocket是一种在客户端和服务器之间建立长连接的协议,允许双向通信,非常适合实时聊天系统...

    Netty数据转发工具

    Netty是一款高性能、异步事件驱动的网络应用框架,它为Java开发人员提供了构建高性能、可扩展的网络应用程序的强大工具。在"Netty数据转发工具"的场景中,描述提到的"Netty实现端口数据转发:3000进4000出"意味着...

    Netty大纲-同步netty专栏

    - **概述**:Netty由JBOSS创始人Jochen Meskel开发,它具有高性能、低延迟、易用性等优点,广泛应用于分布式系统、游戏服务器、RPC框架等领域。 - **HelloWorld**:Netty的基本使用包括服务器端和客户端的搭建,...

    netty+protobuf开发一个聊天室实例

    **开发聊天室步骤** 1. **定义消息协议**: 在.proto文件中定义聊天消息格式,包括用户ID、消息内容等字段。 2. **编译消息类**: 使用protoc编译.proto文件,生成Java类,供Netty应用使用。 3. **创建Netty服务器**:...

    netty简单实例

    这个示例是针对初学者的,旨在帮助理解 Netty 的基本工作原理和用法。 首先,让我们了解 Netty 的核心概念。Netty 的设计围绕着 Channel、Bootstrap、Pipeline 和 EventLoop 这几个关键组件。 1. **Channel**:在 ...

    WebSocket利用netty连接入门项目

    在Netty中,WebSocket服务器的实现通常涉及以下步骤: - 创建`ServerBootstrap`实例,配置服务器的基本设置。 - 设置`ChannelHandler`,处理进来的连接、读写事件等。 - 定义WebSocket升级处理器,处理WebSocket...

    netty3的完整配置实例

    在本文中,我们将深入探讨 Netty 3 的配置实例,这对于理解 Netty 的基本工作原理以及如何在实际项目中使用它是至关重要的。 首先,Netty 3 版本相较于更现代的版本,例如 Netty 4,存在一些显著的差异。例如,...

    netty5.0源码包的依赖包

    Netty 是一个高性能、异步事件驱动的网络应用程序框架,用于快速开发可维护的高性能协议服务器和客户端。在深入探讨Netty 5.0的源码之前,我们首先需要了解Netty的基本架构和核心概念。 Netty的核心组件包括...

    netty+protobuf入门案例

    Netty 是一个高性能、异步事件驱动的网络应用程序框架,用于快速开发可维护的高性能协议服务器和客户端。它广泛应用于分布式系统、游戏服务器、RPC、WebSocket 服务等场景。而 Protobuf(Protocol Buffers)是 ...

    java netty权威指南完整版带目录

    2. **Netty的基本概念** - 事件驱动模型:Netty采用基于事件的模型,通过EventLoop(事件循环)处理I/O事件,提高了并发性能。 - ByteBuf:Netty的内存管理机制,比Java的ByteBuffer更高效,支持零拷贝。 - ...

    Netty服务器与客户端

    通过以上步骤,我们可以了解Netty的基本使用和工作流程。在实际项目中,Netty的强大功能和灵活性使其成为构建高性能网络应用的理想选择。无论是游戏服务器、分布式系统还是微服务通信,Netty都能提供稳定可靠的网络...

    使用jboss netty 创建高性能webservice客户端及服务端

    首先,我们需要理解Netty的基本工作原理。Netty采用非阻塞I/O模型,基于Java NIO(非阻塞输入/输出)库,允许在网络操作中进行高并发处理。这种模型相比传统的阻塞I/O,可以显著提高系统的吞吐量和响应速度。Netty的...

    Netty UDP协议网络打洞实例

    Netty是一个高性能、异步事件驱动的网络应用程序框架,适用于开发服务器和客户端的可复用组件。它极大地简化了TCP、UDP等网络协议的编程工作。在UDP网络打洞实例中,Netty的优势在于其强大的网络编程能力和灵活性,...

    netty实现简单的聊天

    Netty 是一个高性能、异步事件驱动的网络应用程序框架,用于快速开发可维护的高性能协议服务器和客户端。在这个“netty实现简单的聊天”的项目中,我们主要关注的是如何利用Netty构建一个基本的聊天系统,这涉及到...

    Netty+maven的入门程序

    通过以上步骤,你就成功创建了一个基于 Netty、Maven 和 Eclipse 的入门项目。这个项目不仅教你如何设置环境,还展示了如何利用 Netty 进行网络通信。在实际开发中,你可以根据需求扩展这个项目,实现更复杂的功能,...

    Netty版WebSocket聊天

    Netty版WebSocket聊天是一个基于Netty框架实现的实时通信应用,主要利用...通过这个项目,开发者不仅可以了解到WebSocket的基本用法,还能深入理解Netty框架的底层原理和使用技巧,从而提升在网络编程领域的专业能力。

    netty5完整配置实例

    Netty 是一个高性能、异步事件驱动的网络应用程序框架,用于快速开发可维护的高性能协议服务器和客户端。这个“netty5完整配置实例”显然旨在帮助开发者理解和使用Netty 5版本,考虑到Netty的不同版本间的确存在显著...

Global site tag (gtag.js) - Google Analytics