git shell切换wsl
This commit is contained in:
@@ -0,0 +1,38 @@
|
||||
# Netty
|
||||
## Netty适用场景
|
||||
目前,http协议被广泛用于web服务器和客户端之间的交流,但是在一些场景下http协议不能够很好的拓展。
|
||||
如在交换大文件、email信息或实时信息(如多人游戏数据和经济信息)等场景下,通常不使用通用http协议,而是需要为特定需求优化过使用特定场景的协议。
|
||||
## Netty介绍
|
||||
Netty Project提供了异步事件驱动的网络应用框架,并为快速开发和维护高性能、高拓展的协议服务器和客户端提供工具。
|
||||
Netty是开发协议服务器和客户端的NIO开发框架,提供了开发快速和简单开发协议服务器和客户端的方式。其大大简化了网络开发例如tcp和udp套接字编程过程。
|
||||
## Netty Demo
|
||||
### Discard Demo
|
||||
如果要通过netty实现一个丢弃接收数据的server,可以参照如下实现。如下的handler实现用于处理由netty产生的IO事件:
|
||||
```java
|
||||
package io.netty.example.discard;
|
||||
|
||||
import io.netty.buffer.ByteBuf;
|
||||
|
||||
import io.netty.channel.ChannelHandlerContext;
|
||||
import io.netty.channel.ChannelHandlerAdapter;
|
||||
|
||||
/**
|
||||
* Handles a server-side channel.
|
||||
*/
|
||||
public class DiscardServerHandler extends ChannelHandlerAdapter { // (1)
|
||||
|
||||
@Override
|
||||
public void channelRead(ChannelHandlerContext ctx, Object msg) { // (2)
|
||||
// Discard the received data silently.
|
||||
((ByteBuf) msg).release(); // (3)
|
||||
}
|
||||
|
||||
@Override
|
||||
public void exceptionCaught(ChannelHandlerContext ctx, Throwable cause) { // (4)
|
||||
// Close the connection when an exception is raised.
|
||||
cause.printStackTrace();
|
||||
ctx.close();
|
||||
}
|
||||
}
|
||||
```
|
||||
- ChannelHandlerAdapter是ChannelHandler的实现类,并且为
|
||||
Reference in New Issue
Block a user