V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
V2EX 提问指南
Lusai
V2EX  ›  问与答

请问有大佬知道怎么用 Java 实现一个类似 http 协议的自定义协议吗?

  •  
  •   Lusai · 2019-06-06 10:39:45 +08:00 · 1624 次点击
    这是一个创建于 1757 天前的主题,其中的信息可能已经有所发展或是发生改变。

    需要掌握哪些知识呢? 实现 http 协议的源码能在哪里看到吗?

    10 条回复    2019-06-06 12:14:36 +08:00
    vincel
        1
    vincel  
       2019-06-06 11:01:52 +08:00
    肯定是基于 tcp 重新实现呗 指定好你自己的规则 什么三次握手,数据交换。验证之类的
    mmdsun
        2
    mmdsun  
       2019-06-06 11:11:41 +08:00 via Android
    参考 RESP(Redis Serialization Protocol)。文本协议实现很简单。想一楼说的如果要 tcp/ip 协议就难了。
    arloor
        3
    arloor  
       2019-06-06 11:26:26 +08:00   ❤️ 1
    arloor
        4
    arloor  
       2019-06-06 11:31:23 +08:00   ❤️ 1
    java 会用 netty、知道 http 协议的格式之后。
    用 netty 写一个简单版 http 协议实现还是挺简单的
    一楼提到的三次握手,java 根本不需要处理。

    需要编写的代码只有两个部分:
    写 http 请求格式的字节数组;
    解析 http 响应格式的字节数组;

    两句回复肯定帮不了多少,至少得会 java 网络编程,java 网络编程又离不开 netty。
    懂了 netty 后,了解 ByteToMessageDecoder 之后,我觉得应该就没什么难度了
    Lusai
        5
    Lusai  
    OP
       2019-06-06 11:39:21 +08:00
    谢谢各位!
    virusdefender
        6
    virusdefender  
       2019-06-06 11:40:14 +08:00   ❤️ 1
    grpc 就够了,真的要自己实现么?还是有些麻烦的
    honeycomb
        7
    honeycomb  
       2019-06-06 11:40:17 +08:00 via Android
    @arloor netty 是个好东西
    Lusai
        8
    Lusai  
    OP
       2019-06-06 11:40:57 +08:00
    @arloor 谢谢,有了大概的方向就比较好着手了
    Cbdy
        9
    Cbdy  
       2019-06-06 11:42:38 +08:00 via Android
    Netty 源码本身已经提供一些协议的参考实现,去参考一下吧
    PHPer233
        10
    PHPer233  
       2019-06-06 12:14:36 +08:00 via iPhone
    socket 编程?
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   我们的愿景   ·   实用小工具   ·   1149 人在线   最高记录 6543   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 27ms · UTC 22:59 · PVG 06:59 · LAX 15:59 · JFK 18:59
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.