Lusai
V2EX  ›  问与答

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

  •  
  •   Lusai · Jun 6, 2019 · 2398 views
    This topic created in 2562 days ago, the information mentioned may be changed or developed.

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

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

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

    两句回复肯定帮不了多少,至少得会 java 网络编程,java 网络编程又离不开 netty。
    懂了 netty 后,了解 ByteToMessageDecoder 之后,我觉得应该就没什么难度了
    Lusai
        5
    Lusai  
    OP
       Jun 6, 2019
    谢谢各位!
    virusdefender
        6
    virusdefender  
       Jun 6, 2019   ❤️ 1
    grpc 就够了,真的要自己实现么?还是有些麻烦的
    honeycomb
        7
    honeycomb  
       Jun 6, 2019 via Android
    @arloor netty 是个好东西
    Lusai
        8
    Lusai  
    OP
       Jun 6, 2019
    @arloor 谢谢,有了大概的方向就比较好着手了
    Cbdy
        9
    Cbdy  
       Jun 6, 2019 via Android
    Netty 源码本身已经提供一些协议的参考实现,去参考一下吧
    PHPer233
        10
    PHPer233  
       Jun 6, 2019 via iPhone
    socket 编程?
    About   ·   Help   ·   Advertise   ·   Blog   ·   API   ·   FAQ   ·   Solana   ·   973 Online   Highest 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 38ms · UTC 19:23 · PVG 03:23 · LAX 12:23 · JFK 15:23
    ♥ Do have faith in what you're doing.