作者回复: 谢谢,很欣慰!江湖再见!
作者回复: 2020,新年快乐!都加油!
作者回复: 谢谢肯定!对你有帮助就好!tcp/ip这个要多抓包才能体会。
作者回复: 你的问题2好像本身就回复了问题1,具体而言:参考这个方法
LengthFieldBasedFrameDecoder#getUnadjustedFrameLength读取2字节(lengthFieldLength)的内容,这个内容里面存的就是长度。然后内容的读取是LengthFieldBasedFrameDecoder#extractFrame
第二个问题:
你随便找一个简单的bytebuf实现,例如UnpooledHeapByteBuf,然后查看这个方法,你最终找到的是:HeapByteBufUtil#getShort
static short getShort(byte[] memory, int index) {
return (short) (memory[index] << 8 | memory[index + 1] & 0xFF);
}
index其实不重要,代表当前索引位了,你可以假设是0,横竖意思就是从当前索引开始,取第一个字节和第二个字节,一个作高位(<<8),一个做低位,拼接到一起(也就是|), 然后2个字节不就是刚好short的长度么,就这么算出来的。
你的这个问题很长,不知道你想问的和我理解的你要问的可是完全匹配,应该差不多,如果有别的疑问或者哪里不明白,继续提问,谢谢。
作者回复: 能运行就好,还得持续观察,多做点度量统计之类的,经得住长时间的考验才是王道。哈哈
作者回复: 只能说,学习的道路上,大家一起作伴!谢谢。
作者回复: 客气客气,希望有所收获!
作者回复: 多谢肯定,也谢谢你们的陪伴,我搞完之后,也有类似的感觉:
“我感觉到学习路上的艰辛,因为不会的领域更广了。”
最近老感觉时间不够用,怎么说呢,这种感觉其实也不错,至少很充实。哈哈
BTW: 还有你有一个问题,很早的一个问题(AIO最早由谁提出),我没有回复你,其实当时是花了一个上午研究,没有找到答案,当时忙就没有继续看了,现在不忙了,我最近开始一个一个解决问题.....见谅
作者回复: 那就欣慰了,谢谢
作者回复: 就在课程的git里面下载
作者回复: 哈哈,谢谢肯定,一起加油,江湖再见!
作者回复: 可以下载pdf……
作者回复: 也谢谢你们的一路陪伴!
作者回复: 还是那句,对说的不好的地方多包涵,共同进步!也谢谢你们的一路耐心听完
作者回复: 很感谢你,一路打卡,而且看的很细致,现在我会回头清理之前忙没回答的问题,哈哈
作者回复: 能有收获,我就很欣慰了,是的,学无止境,能苦中作乐就好,😄