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

2019-06-06 10:39:45 +08:00
 Lusai

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

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

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

两句回复肯定帮不了多少,至少得会 java 网络编程,java 网络编程又离不开 netty。
懂了 netty 后,了解 ByteToMessageDecoder 之后,我觉得应该就没什么难度了
Lusai
2019-06-06 11:39:21 +08:00
谢谢各位!
virusdefender
2019-06-06 11:40:14 +08:00
grpc 就够了,真的要自己实现么?还是有些麻烦的
honeycomb
2019-06-06 11:40:17 +08:00
@arloor netty 是个好东西
Lusai
2019-06-06 11:40:57 +08:00
@arloor 谢谢,有了大概的方向就比较好着手了
Cbdy
2019-06-06 11:42:38 +08:00
Netty 源码本身已经提供一些协议的参考实现,去参考一下吧
PHPer233
2019-06-06 12:14:36 +08:00
socket 编程?

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/571406

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX