nio框架:netty
//1、启动Server,输入telnet命令:telnet localhost 8088,再输入任意字符
//为什么我-次只能发送一个字节?
public class NettyServer {
private int port=8088;
public static void main(String[] args) {
NettyServer server = new NettyServer();
server.run();
}
void run() {
EventLoopGroup bossGroup = new NioEventLoopGroup(1);
EventLoopGroup workerGroup = new NioEventLoopGroup();
try {
ServerBootstrap b = new ServerBootstrap();
b.group(bossGroup, workerGroup)
.channel(NioServerSocketChannel.class)
.childHandler(new ChannelInitializer<SocketChannel>() {
public void initChannel(SocketChannel ch) {
ch.pipeline().addLast(new SeverHandler());
}}
).option(ChannelOption.SO_BACKLOG, 128)
.childOption(ChannelOption.SO_KEEPALIVE, true);
ChannelFuture f = b.bind(port).sync();
f.channel().closeFuture().sync();
}catch(Exception e) {
e.printStackTrace();
}finally {
bossGroup.shutdownGracefully();
workerGroup.shutdownGracefully();
}
}
}
public class SeverHandler extends ChannelInboundHandlerAdapter {
public void channelRead(ChannelHandlerContext ctx, Object msg) throws Exception {
ByteBuf in = (ByteBuf)msg;
try {
while(in.isReadable()) {
System.out.println((char)in.readByte());
System.out.flush();
}
}finally {
ReferenceCountUtil.release(msg);
}
}
public void exceptionCaught(ChannelHandlerContext ctx, Throwable cause) throws Exception {
cause.printStackTrace();
ctx.close();
}
}
分享到:
相关推荐
Netty快速入门系列源码, 参考 https://blog.csdn.net/netcobol Netty是一个java开源框架。Netty提供异步的、事件驱动的网络应用程序框架和工具,用以快速开发高性能、高可靠性的网络服务器和客户端程序。 Netty是...
1. **服务端与客户端的启动机制**:了解如何初始化Netty服务端和客户端,以及它们的工作原理。 2. **数据载体ByteBuf的使用**:掌握ByteBuf的用法,它是Netty中用于处理二进制数据的核心类。 3. **自定义协议设计**...
### Netty 入门与实战:仿写微信 IM 即时通讯系统 #### 一、引言 随着移动互联网技术的飞速发展,即时通讯(IM)应用已成为人们日常生活中不可或缺的一部分。微信作为中国最成功的即时通讯软件之一,其背后的架构和...
Netty 入门与实战:仿写微信 IM 即时通讯系统,掘金小册子,netty教程。章节齐全无缺失,排版非常不错。 1.仿微信IM系统简介 1 2.Netty是什么? 2 3.服务端启动流程 8 4.客户端启动流程 11 5.实战:客户端与服务端双向...
Bootstrap类是构建Netty服务端或客户端的基础,它提供了设置Netty参数(例如连接超时时间、线程模型等)的方法。 #### Channel Channel是Netty中的核心组件之一,它是所有I/O操作的基础。Netty通过Channel抽象出了...
"Netty 入门经典例子" Netty 是一个异步的、事件驱动的网络编程框架和工具,使用 Netty 可以快速开发出可维护的、high-performance 的协议服务及其客户端应用。Netty 相当简化和流线化了网络应用的编程开发过程,...
Netty服务端与客户端,数据的发送与接收 使用:先运行TimeServer,在运行TimeClient。成功连接后,服务器发送一个时间给客户端。输出到客户端控制台 4.第三个示例 com.user_1 Netty将java对象作为数据的发送与...
在Netty中,服务端通常由`ServerBootstrap`类初始化。`ServerBootstrap`负责配置服务器,并创建一个`Bootstrap`实例来绑定监听端口。我们会在`ChannelInitializer`中设置管道(Pipeline),这是Netty处理进来的网络...
本工程采用maven+netty4.1.0+PrefixedStringDecoder+json技术,包括客户端和服务端。先运行服务端SampleServer,再去等客户端SampleClient。示例中发的是心跳包,其中消息格式定义为msgType + msgNo + content(json...
在第二课“Netty服务端”中,我们将学习如何使用Netty搭建一个简单的服务器。首先,我们需要创建一个`ServerBootstrap`实例来配置服务器。接着,通过`channelHandler`我们可以定义服务器接收到数据后如何处理,如...
Netty 是一个高性能、异步事件驱动的网络应用程序框架,用于快速开发可维护的高性能协议服务器和客户端。这个框架在Java领域广泛应用于构建高并发、低延迟的网络应用,如分布式系统、游戏服务器、金融交易系统等。...
在本案例中,"Netty3客户端服务端hi allen.zip" 提供了一个基于 Netty 3 的简单客户端和服务端示例,旨在帮助初学者理解和入门 Netty 3。 首先,我们需要了解 Netty 的核心概念。Netty 是基于 Java NIO(非阻塞I/O...
netty案例,netty4.1基础入门篇十一《netty udp通信方式案例Demo》源码 https://mp.weixin.qq.com/s?__biz=MzIxMDAwMDAxMw==&mid=2650724927&idx=1&sn=a16bc8e98d6a27816da0896adcc83778&scene=19#wechat_redirect
该入门示例程序是异步、基于事件驱动的网络通讯框架,对于java开发入门以及netty开发入门程序员有极大的学习效果和提升作用。异步:支持多个请求同时处理 响应通过回调函数处理 例如ajax 事件驱动 :比如客户端对...
7. **心跳机制**:Netty支持自定义心跳包,用于检测网络连接是否断开,确保服务端和客户端之间的长连接稳定。 8. **安全性**:Netty集成了SSL/TLS加密,提供了安全的网络通信,同时支持多种认证机制,如BasicAuth、...
Bootstrap和ServerBootstrap是启动客户端和服务端连接的入口,Channel代表一个网络连接,Pipeline则是一个处理链,Handler是处理事件的组件,用户可以根据需求自定义处理逻辑。 接着,书中详细阐述了Netty的事件...
也就是说,Netty 是一个基于NIO的客户,服务器端编程框架,使用Netty 可以确保你快速和简单的开发出一个网络应用,例如实现了某种协议的客户,服务端应用。Netty相当简化和流线化了网络应用的编程开发过程,例如,...
在"Netty初步学习-HelloNetty.rar"这个压缩包中,我们可以看到包含"第二课netty服务端"的资源,这表明我们将学习如何构建一个简单的 Netty 服务端。下面将详细解释 Netty 的核心概念和步骤,以帮助你入门。 1. **...
这个“netty4简单客户端和服务端01.zip”文件包含了一个基于Netty 4的基础示例,旨在帮助初学者入门,了解如何构建简单的客户端和服务端通信。相比于Netty 3,Netty 4引入了许多改进,如更好的性能、更低的内存消耗...