- 11
- 0
- 约5.24千字
- 约 14页
- 2016-09-20 发布于重庆
- 举报
Protobuf使用例子
Protobuf使用例子
rotobuf使用整理
rotobuf序列化反序列化的一种解决方案roto文件编写
执行生成java文件
通过socket进行通信
下载官方提供的protobuf-java.xx.jar包,然后就可以进行开发工作了Jprotobuf使用整理
jprotobuf操作
将工程从github拉到本地eclipse中,增加一个打包bat脚本,将工程打成jar包客户端用proto文件生成的字节码发送请求数据,服务端用注解方式接收数据然后发送数据客户端代码为:
通过socket方式处理
// JPClient.java文件为:
public class JPClient {
private final static String HOST_NAME = localhost;
private final static int PORT = 8080;
public static void main(String[] args) {
Socket socket = null;
InputStream ins = null;
OutputStream ous = null;
try {
socket = new Socket(HOST_NAME, PORT);
socket.setKeepAlive(true);
socket.setSoTimeout(10000);
ous = socket.getOutputStream();
ins = socket.getInputStream();
UserInfo.Builder builder = UserInfo.newBuilder();
builder.setUserId(10501L);
builder.setUserName(jprotobuf);
ListString mobileList = new ArrayListString();
mobileList.add;
mobileList.add;
builder.addAllMobileList(mobileList);
builder.setFlag(1);
builder.setVipStatus(true);
// protobuf提供的toByteArray方法实现序列化处理
byte[] bytes = builder.build().toByteArray();
int length = bytes.length;
ous.write(length);
ous.write(bytes);
ous.flush();
System.out.println(length= + length);
System.out.println(builder= + builder.build().toString());
int readLength = ins.read();
byte[] readBytes = new byte[readLength];
ins.read(readBytes, 0, readLength);
System.out.println(readLength= + readLength);
// protobuf提供的parseFrom实现反序列化处理
UserInfo userInfo = UserInfo.parseFrom(readBytes);
System.out.println(userInfo= + userInfo.toString());
} catch (UnknownHostException e) {
e.printStackTrace();
} catch (IOException e) {
您可能关注的文档
最近下载
- 汽车热管理系统仿真分析与实例解析 课件 06 AI 技术与汽车热管理.pptx
- 《钛合金锻坯 缺陷检测 相控阵超声水浸检测方法》.pdf VIP
- F665065【复试】2024年长春理工大学070200物理学《复试物理光学》考研复试终极预测5套卷.pdf VIP
- 7.2《秦腔》课件(共43张PPT)(含音频+视频).pptx VIP
- 《急危重症护理学》配套ppt 9.第九章 泌尿系统功能监护.ppt VIP
- ZR-ZT-无油空压机培训资料.ppt VIP
- 2025年度医院党支部组织生活会临床医生个人对照检查材料.doc VIP
- (国家标准)GB T 7424.1-2003 光缆总规范 第1部分:总则.pdf
- 《工业控制系统信息安全防护指南》解读.doc VIP
- 救护员培训应急救护PPT课件.pptx VIP
原创力文档

文档评论(0)