fuzhengwei / fuzhengwei/blog.github.io

netty案例,netty4.1基础入门篇三《NettyServer字符串解码器》 - bugstack虫洞栈

Open
#34 3 comments 0 reactions 0 assignees View on GitHub
5622799c3a326b0cc0de8ba52793964d gitment
Dominant language
HTML
Stars
14
Forks
7
PR merge metrics
No merged PRs in 30d

Description

https://fuzhengwei.github.io/itstack-demo-netty-1/2019/08/06/netty%E6%A1%88%E4%BE%8B-netty4.1%E5%9F%BA%E7%A1%80%E5%85%A5%E9%97%A8%E7%AF%87%E4%B8%89-NettyServer%E5%AD%97%E7%AC%A6%E4%B8%B2%E8%A7%A3%E7%A0%81%E5%99%A8.html

前言介绍


在实际开发中,server端接收数据后我们希望他是一个字符串或者是一个对象类型,而不是字节码,那么;
1、在netty中是否可以自动的把接收的Bytebuf数据转String,不需要我手动处理?
答;有,可以在管道中添加一个StringDecoder。
2、在网络传输过程中有半包粘包的问题,netty能解决吗?
答:能,netty提供了很丰富的解码器,在正确合理的使用下就能解决半包粘包问题。
3、常用的String字符串下有什么样的解码器呢?
答:不仅在String下有处理半包粘包的解码器在处理其他的数据格式也有,其中谷歌的protobuf数据格式就是其中一个。对于String的有一下常用的三种:
3.1、LineBasedFrameDecoder 基于换行
3.2、DelimiterBasedFrameDecoder 基于指定字符串
3.3、FixedLengthFrameDecoder 基于字符串长度


开发环境


1、jdk1.8【jdk1.7以下只能部分支持netty】
2、Netty4.1.36.Final【netty3.x 4.x 5每次的变化较大,接口类名也随着变化】
3、telnet 测试【可以现在你的win7机器上测试这个命令,用于链接到服务端的测试命令】


代码示例


itstack-demo-netty-1-03

└── src
├── main
└── java
└── org.itstack.demo.netty.server
├── MyChannelInitializer.java
├── MyServerHandler.java
└── NettyServer.java
└── test
└── java
└── org.itstack.demo.netty.test
└── ApiTest.java


MyChannelInitializer.java


Contributor guide

No contributing guide indexed for this repository

Assessment

This issue has not been assessed yet.

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.