fuzhengwei / blog.github.io

fuzhengwei.github.io
Apache License 2.0
15 stars 8 forks source link

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

Open fuzhengwei opened 5 years ago

fuzhengwei commented 5 years ago

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

lsq543658134 commented 5 years ago

客户端模拟器发送数据,服务器数据接受不了啊?

fuzhengwei commented 5 years ago

@lsq543658134 客户端模拟器发送数据,服务器数据接受不了啊?

一定要记得加结尾标识

liuhegong commented 4 years ago

请问结尾加什么标识啊 /n ? 加了也没用啊