通过对POJO进行序列化后通过Netty进行网络传输。
优点:简单,非常简单,Netty内置相关的Object的编码解码的类包,直接调用就完事了
缺点:Java 本身提供序列化的 性能低、占用空间打(数据流大)、没有跨平台
最简单的解决方案:传输JSON
以下实验使用到的包(Maven):
<dependency>
<groupId>org.projectlombok</groupId>
<artifactId>lombok</artifactId>
<version>1.18.8</version>
<scope>provided</scope>
</dependency>
<dependency>
<groupId>io.netty</groupId>
<artifactId>netty-all</artifactId>
<version>4.1.36.Final</version>
</dependency>
数据模型:
---------------------------------------Class DataReq---------------------------------------------------
import lombok.Data;
import java.io.Serializable;
@Data
public class DataReq implements Serializable {
/**
* 默认的序列号ID
*/
private static final long serialVersionUID = 1L;
private String dataId;
private String dataName;
@Override
public String toString() {
return "DataReq{" +
"dataId=" + dataId +
", dataName='" + dataName + '\'' +
'}';
}
}
---------------------------------------Class DataResp---------------------------------------------------
import lombok.Data;
import java.io.Serializable;
@Data
public class DataResp implements Serializable {
/**
* 默认序列ID
*/
private static final long serialVersionUID = 1L;
private String dataID;
private String dataName;
private String desc;
@Override
public String toString() {
return "DataResp{" +
"dataID=" + dataID +
", dataName=" + dataName +
", desc='" + desc + '\'' +
'}';
}
}
Server:
import io.netty.bootstrap.ServerBootstrap;
import io.netty.channel.*;
import io.netty.channel.nio.NioEventLo