请稍等 ...
×

采纳答案成功!

向帮助你的同学说点啥吧!感谢那些助人为乐的人

发送广播的数据长度为什么要+1

sendBroadcast()方法中,ByteBuffer执行了三次put操作,每次put操作,position值都要增加,

也就是说事实上position已经是0(初始值)+8(HEADER)+2(short)+4(int),数据长度直接取position就可以吧,为什么要+1呢?

是我对ByteBuffer.position()理解有误吗?

正在回答 回答被采纳积分+3

1回答

Qiujuer 2018-12-25 11:14:16

不是你的理解有误哈,非常正确;你是对的;没有错误。是我最初测试的时候估计+1了,但是后来讲课之前忘记移除掉了,讲解的时候也没发现就直接讲过去了。多谢指正。


我看了一下回送的时候都是正确的,就是发送广播的时候数值长度不对。


https://img1.sycdn.imooc.com//szimg/5c21a0340001cd1f15860570.jpg


这里的+1应该去掉:
https://img1.sycdn.imooc.com//szimg/5c21a051000163f012260370.jpg

当时是为了测试健壮性故意+了一些长度模拟额外数据信息,后来改成+1后讲课的时候没注意就照着讲了;实在抱歉。

2 回复 有任何疑惑可以回复我~
问题已解决,确定采纳
还有疑问,暂不采纳
意见反馈 帮助中心 APP下载
官方微信