• 智超
    2019-12-14
    谢谢老师,课程相当值,谁debug谁知道

    作者回复: 谢谢,很欣慰!江湖再见!

    
     2
  • 13671864609
    2020-02-08
    老师以后用到netty做项目的时候,还会翻出来看看的。
    
    
  • Simba
    2020-02-03
    看完了,谢谢老师,2020加油!!!

    作者回复: 2020,新年快乐!都加油!

    
    
  • tongmin_tsai
    2020-01-13
    老师的课程很赞,前面2,3章看得很吃力,第四章开始到第五章感觉很好,项目中想使用netty,但是又怕用不好,看了第四章,第五章,真的非常好,再反过头去看第二章,第三章,好像又懂了一些,非常感谢老师,期待老师能继续出TCP/IP网络的课程,看TCP/IP卷1,看得太吃力了,老师很多的讲解,有时有种豁然开朗的味道

    作者回复: 谢谢肯定!对你有帮助就好!tcp/ip这个要多抓包才能体会。

    
    
  • 虹炎
    2020-01-07
    1,老师,我研究了下LengthFieldBasedFrameDecoder源码,
    BEFORE DECODE (14 bytes) AFTER DECODE (14 bytes)
     * +--------+----------------+ +--------+----------------+
     * | Length | Actual Content |----->| Length | Actual Content |
     * | 0x000C | "HELLO, WORLD" | | 0x000C | "HELLO, WORLD" |
     * +--------+----------------+ +--------+----------------+
    代码传lengthFieldOffset=0,lengthFieldLength=2,lengthAdjustment=0,initialBytesToStrip=2 就可以解析出实际内容
    hello,world.并解决沾包问题。 我的疑问是,0x000C=12 这个值我在源码没看到解析。我的理解,我知道了传输数据的 长度比如
    12,后面跟hello,空格world, 我才知道要处理12个byte, 这个数据处理完了。知道这个消息的边界。可是我在源码中
    并没有看到12这个统计实际内容的byte?想问下老师。
    2,long frameLength = getUnadjustedFrameLength(in, actualLengthFieldOffset, lengthFieldLength, byteOrder); 源码这段表示计算frameLength长度,实际frameLength = buf.getUnsignedShort(2); (加入传2)查了资料也还没弄明白。这是怎么计算内容长度的呢?
    展开

    作者回复: 你的问题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的长度么,就这么算出来的。

    你的这个问题很长,不知道你想问的和我理解的你要问的可是完全匹配,应该差不多,如果有别的疑问或者哪里不明白,继续提问,谢谢。

    
    
  • delete is create
    2020-01-02
    感谢感谢, 用了netty做了物联网的后台。

    作者回复: 能运行就好,还得持续观察,多做点度量统计之类的,经得住长时间的考验才是王道。哈哈

    
    
  • 虹炎
    2020-01-02
    学完了,收获很多。对我而言,我还需要回去多看源码,分析分析。感谢老师带领我们走了捷径,对netty不在迷惑!点赞。👍

    作者回复: 只能说,学习的道路上,大家一起作伴!谢谢。

    
    
  • bbpatience
    2019-12-24
    看完了,谢谢老师

    作者回复: 客气客气,希望有所收获!

    
    
  • 王莹
    2019-12-13
    写完打卡,收益良多。
    几个月前源码学习RocketMQ的remoting模块时,有些东西似懂非懂,不是很理解为什么这么设计与实现;恰好这时候本课程出现了,于是狠狠地恶补了一遍nio,Reactor理论基础,再来学习本课程,感觉太舒服了。
    本课程这些点线面的讲解,netty的源码实现,都给人一种这样设计实现很考究,很优美的感觉。
    我也在研读源码时发现了一个COB的一个错误的注释,也向netty提交了PR。
    课程学完之后我感觉到学习路上的艰辛,因为不会的领域更广了。
    接下来准备复习RocketMQ的remoting,学习spring5,vert. x里netty的使用,然后继续深入学习netty。
    最后,感谢老师~谢谢您~让我在学习之旅如此愉悦~
    展开

    作者回复: 多谢肯定,也谢谢你们的陪伴,我搞完之后,也有类似的感觉:
    “我感觉到学习路上的艰辛,因为不会的领域更广了。”
    最近老感觉时间不够用,怎么说呢,这种感觉其实也不错,至少很充实。哈哈
    BTW: 还有你有一个问题,很早的一个问题(AIO最早由谁提出),我没有回复你,其实当时是花了一个上午研究,没有找到答案,当时忙就没有继续看了,现在不忙了,我最近开始一个一个解决问题.....见谅

    
    
  • 十年
    2019-12-12
    非常非常感谢老师!真的学到很多东西。

    作者回复: 那就欣慰了,谢谢

    
    
  • 见贤思齐
    2019-12-12
    学完打卡,感谢老师!
    netty源码可以共享下吗?

    作者回复: 就在课程的git里面下载

     1
    
  • 带刺的小黄瓜
    2019-12-12
    感谢作者,主要还是业务线程对我的帮助很大,我接触Netty不多,并且我以前是写C#的,公司创业初期做物联网类产品,用到了Netty实现TCP/IP通讯,刚开始的业务线程是自己写的,一堆的问题,也不知道Handler是可以移除的,所在对设备有效性校验的时候头大到爆,感谢老师,虽然还有很多地方没看懂,需要再来几次,不积跬步。。。 期待再见!

    作者回复: 哈哈,谢谢肯定,一起加油,江湖再见!

    
    
  • PatHoo
    2019-12-12
    学完打卡,我也曾经有很多书,书非借不能读。。。

    作者回复: 可以下载pdf……

    
    
  • yourihua
    2019-12-12
    学完打卡 受益颇丰 感谢

    作者回复: 也谢谢你们的一路陪伴!

    
    
  • 鞋子特大号
    2019-12-12
    谢谢老师,学到了很多东西。

    作者回复: 还是那句,对说的不好的地方多包涵,共同进步!也谢谢你们的一路耐心听完

    
    
  • 鱼向北游
    2019-12-11
    打卡 感谢老师

    作者回复: 很感谢你,一路打卡,而且看的很细致,现在我会回头清理之前忙没回答的问题,哈哈

    
    
  • 小不点
    2019-12-11
    感谢前辈,一套流程下来收获很多,可能自己做的不完美,但学无止境,江湖再会

    作者回复: 能有收获,我就很欣慰了,是的,学无止境,能苦中作乐就好,😄

    
    
我们在线,来聊聊吧