网络传输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数组相关推荐

  1. Java字节序,java整型数与网络字节序 byte[] 数组转换关系(ByteArrayOutputStream用法)

    Java字节序 http://origin100.iteye.com/blog/267165 /** * 通信格式转换 * * Java和一些windows编程语言如c.c++.delphi所写的网络 ...

  2. Java字节序,java整型数与网络字节序 byte[] 数组转换关系

    Java字节序 http://origin100.iteye.com/blog/267165 /** * 通信格式转换 * * Java和一些windows编程语言如c.c++.delphi所写的网络 ...

  3. java byte(字节_Java字节序,java整型数与网络字节序 byte[] 数组转换关系(ByteArrayOutpu......

    /** * 通信格式转换 * * Java和一些windows编程语言如c.c++.delphi所写的网络程序进行通讯时,需要进行相应的转换 * 高.低字节之间的转换 * windows的字节序为低字 ...

  4. Android网络传输中必用的两个加密算法:MD5 和 RSA (附java完成测试代码)

    MD5和RSA是网络传输中最常用的两个算法,了解这两个算法原理后就能大致知道加密是怎么一回事了.但这两种算法使用环境有差异,刚好互补. 一.MD5算法 首先MD5是不可逆的,只能加密而不能解密.比如明 ...

  5. python opencv 图像网络传输

    本代码主要实现的是利用网络传输图片,用在我的树莓派项目之上.该项目在PC上运行服务端,树莓派上运行客户端,两者连接到同一局域网中,修改代码中的IP地址,就可以实现将树莓派采集到的图像数据实时传输到PC ...

  6. Android网络传输中必用的两个加密算法:MD5 和 RSA 及Base64加密总结

    (1)commons-codec包简介 包含一些通用的编码解码算法.包括一些语音编码器,Hex,Base64.MD5 一.md5.base64.commons-codec包 commons-codec ...

  7. Byte和byte[]数组

    Byte和byte[]数组,"表示一个 8 位无符号整数, 一般为8位二进制数". Byte是计算机最基础的存储单位和最基础的通讯单位. 而所有的类型都是支持由byte[]类型转换 ...

  8. post发送byte数组_KAFKA消息发送

    消息发送的整体架构 RecordAccumulator 主要用来缓存消息以便 Sender 线程可以批量发送,进而减少网络传输的资源消耗以提升性能.RecordAccumulator 缓存的大小可以通 ...

  9. java整型转换为数组_基于java中byte数组与int类型的转换(两种方法)

    java中byte数组与int类型的转换,在网络编程中这个算法是最基本的算法,我们都知道,在socket传输中,发送.者接收的数据都是 byte数组,但是int类型是4个byte组成的,如何把一个整形 ...

最新文章

  1. 2021年春季学期-信号与系统-第十五次作业参考答案-第三小题参考答案
  2. 如何通过 Serverless 技术降低微服务应用资源成本?
  3. linux下错误的捕获:errno、perror和strerror的使用
  4. 学习笔记-------两阶段提交 2PC
  5. python主从_python—mariadb自动部署主从
  6. 2019技术学习规划
  7. jsp 导入java类_JSP页面导入问题。类文件放在WEB-INF / classes中的包中
  8. NLP--Word2Vec详解
  9. orm框架有哪些_.net core 基于Dapper 的分库分表开源框架(coredata)
  10. 周立功USBCAN资料分享
  11. Ubuntu系统上安装WPS
  12. 正确的做事和做正确的事
  13. 一张照片让你的安卓手机崩溃
  14. python 条形图显示数值_如何在条形图的条形图中显示数值?
  15. CodeForces - 1005A . Tanya and Stairways
  16. 一个独立工具开发者的独立之路
  17. 主板上的jrgb接口干什么用_千万不要认错,虽然都是四针接口,但对RGB风扇的用处却大不相同...
  18. python爬虫BeautifulSoup库抓取500彩票网竞彩足球信息并在excel表中对中奖赔率设置格式
  19. 微信服务号开发----发送消息
  20. MySQL数据库操作补坑(一)数据类型

热门文章

  1. python喜马拉雅FM(赵海洋钢琴曲)
  2. html插入flash时钟,ppt如何添加Flash时钟插件
  3. 公网IP是什么(Public IP)
  4. 我的漫漫程序人生路(上)
  5. python中没有arcpy怎么办_AGS Python开发-ArcPy开发基础
  6. 数学建模——公式编辑技巧
  7. 好看轻量级北邮人导航源码
  8. Java学习——基础知识之运算符和输入输出
  9. 腾讯微博 - QQ微博
  10. ACDC隔离电源设计手机适配器智能家居供电5V1A设计方案