git shell切换wsl
This commit is contained in:
2
.gitignore
vendored
2
.gitignore
vendored
@@ -1 +1 @@
|
|||||||
.idea/
|
.idea/
|
||||||
|
|||||||
@@ -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