需要掌握哪些知识呢? 实现 http 协议的源码能在哪里看到吗?
1
vincel 2019-06-06 11:01:52 +08:00
肯定是基于 tcp 重新实现呗 指定好你自己的规则 什么三次握手,数据交换。验证之类的
|
2
mmdsun 2019-06-06 11:11:41 +08:00 via Android
参考 RESP(Redis Serialization Protocol)。文本协议实现很简单。想一楼说的如果要 tcp/ip 协议就难了。
|
3
arloor 2019-06-06 11:26:26 +08:00 1
使用 http 请求包裹 payload 传输:
https://github.com/arloor/sogonetty/blob/master/src/main/java/com/arloor/sogonetty/RelayOverHttpRequestHandler.java 解析 http 响应包裹的 payload: https://github.com/arloor/sogonetty/blob/master/src/main/java/com/arloor/sogonetty/HttpResponseDecoder.java 以上是 netty 写的使用 http 传输的 socks5 代理。 下面是一个博文,用于解释 http://arloor.com/posts/netty/netty-bytetomessagedecoder-stream-like-decoder 希望对你有帮助 |
4
arloor 2019-06-06 11:31:23 +08:00 1
java 会用 netty、知道 http 协议的格式之后。
用 netty 写一个简单版 http 协议实现还是挺简单的 一楼提到的三次握手,java 根本不需要处理。 需要编写的代码只有两个部分: 写 http 请求格式的字节数组; 解析 http 响应格式的字节数组; 两句回复肯定帮不了多少,至少得会 java 网络编程,java 网络编程又离不开 netty。 懂了 netty 后,了解 ByteToMessageDecoder 之后,我觉得应该就没什么难度了 |
5
Lusai OP 谢谢各位!
|
6
virusdefender 2019-06-06 11:40:14 +08:00 1
grpc 就够了,真的要自己实现么?还是有些麻烦的
|
9
Cbdy 2019-06-06 11:42:38 +08:00 via Android
Netty 源码本身已经提供一些协议的参考实现,去参考一下吧
|
10
PHPer233 2019-06-06 12:14:36 +08:00 via iPhone
socket 编程?
|