网络传输Byte数组
网络传输Byte数组
案例背景
需要将byte数组,以Json的方式传输,Json默认会将Byte数组转化成String作为key的value。我们也可以自己将Byte数组转化为String在放入Json键值对里。在接手端再从Json中解析出Byte数组。
但是项目中的问题是:传过来的Byte数组还原不了。接收端解析得到的Byte数组的长度和发送端的原始Byte数组的长度都不一样。
Byte数组转String
byte[] 和String可以随意转换
但是当byte数组理有负值的时候就会出现问题,如下代码所示
byte[] bytes = {1,-1,1,-1,1};
String rec = new String(bytes);
byte[] byter = rec.getBytes();
通过debug发现
测试发现只要是byte数组中出现负值,将byte数组转换成String后,再由String转换回byte数组所有的负值都会转换成-17,-65,-67三个byte。这个具体原因我还在研究中。
解决办法
最简单的就是用base64对byte数组进行编码,进过编码后得到String传输到对端解码得出byte数组。
String str = Base64.encodeBase64String(bytes);
byte[] byteres = Base64.decodeBase64(str);
网络传输Byte数组相关推荐
- Java字节序,java整型数与网络字节序 byte[] 数组转换关系(ByteArrayOutputStream用法)
Java字节序 http://origin100.iteye.com/blog/267165 /** * 通信格式转换 * * Java和一些windows编程语言如c.c++.delphi所写的网络 ...
- Java字节序,java整型数与网络字节序 byte[] 数组转换关系
Java字节序 http://origin100.iteye.com/blog/267165 /** * 通信格式转换 * * Java和一些windows编程语言如c.c++.delphi所写的网络 ...
- java byte(字节_Java字节序,java整型数与网络字节序 byte[] 数组转换关系(ByteArrayOutpu......
/** * 通信格式转换 * * Java和一些windows编程语言如c.c++.delphi所写的网络程序进行通讯时,需要进行相应的转换 * 高.低字节之间的转换 * windows的字节序为低字 ...
- Android网络传输中必用的两个加密算法:MD5 和 RSA (附java完成测试代码)
MD5和RSA是网络传输中最常用的两个算法,了解这两个算法原理后就能大致知道加密是怎么一回事了.但这两种算法使用环境有差异,刚好互补. 一.MD5算法 首先MD5是不可逆的,只能加密而不能解密.比如明 ...
- python opencv 图像网络传输
本代码主要实现的是利用网络传输图片,用在我的树莓派项目之上.该项目在PC上运行服务端,树莓派上运行客户端,两者连接到同一局域网中,修改代码中的IP地址,就可以实现将树莓派采集到的图像数据实时传输到PC ...
- Android网络传输中必用的两个加密算法:MD5 和 RSA 及Base64加密总结
(1)commons-codec包简介 包含一些通用的编码解码算法.包括一些语音编码器,Hex,Base64.MD5 一.md5.base64.commons-codec包 commons-codec ...
- Byte和byte[]数组
Byte和byte[]数组,"表示一个 8 位无符号整数, 一般为8位二进制数". Byte是计算机最基础的存储单位和最基础的通讯单位. 而所有的类型都是支持由byte[]类型转换 ...
- post发送byte数组_KAFKA消息发送
消息发送的整体架构 RecordAccumulator 主要用来缓存消息以便 Sender 线程可以批量发送,进而减少网络传输的资源消耗以提升性能.RecordAccumulator 缓存的大小可以通 ...
- java整型转换为数组_基于java中byte数组与int类型的转换(两种方法)
java中byte数组与int类型的转换,在网络编程中这个算法是最基本的算法,我们都知道,在socket传输中,发送.者接收的数据都是 byte数组,但是int类型是4个byte组成的,如何把一个整形 ...
最新文章
- 2021年春季学期-信号与系统-第十五次作业参考答案-第三小题参考答案
- 如何通过 Serverless 技术降低微服务应用资源成本?
- linux下错误的捕获:errno、perror和strerror的使用
- 学习笔记-------两阶段提交 2PC
- python主从_python—mariadb自动部署主从
- 2019技术学习规划
- jsp 导入java类_JSP页面导入问题。类文件放在WEB-INF / classes中的包中
- NLP--Word2Vec详解
- orm框架有哪些_.net core 基于Dapper 的分库分表开源框架(coredata)
- 周立功USBCAN资料分享
- Ubuntu系统上安装WPS
- 正确的做事和做正确的事
- 一张照片让你的安卓手机崩溃
- python 条形图显示数值_如何在条形图的条形图中显示数值?
- CodeForces - 1005A . Tanya and Stairways
- 一个独立工具开发者的独立之路
- 主板上的jrgb接口干什么用_千万不要认错,虽然都是四针接口,但对RGB风扇的用处却大不相同...
- python爬虫BeautifulSoup库抓取500彩票网竞彩足球信息并在excel表中对中奖赔率设置格式
- 微信服务号开发----发送消息
- MySQL数据库操作补坑(一)数据类型