本文打算用java 实现一个socks5代理,写之前在网上搜索发现资料也比较少,决定做个总结
1.首先我们讲解什么是代理
用一幅形象的图解释什么事代理,我们的请求过来后 代理将请求转达到真正的网络,再将结果转发回来。我们的浏览器看起来就像和真正的网站之间进行通信一样,我们要做的就是对请求和响应的转发工作
2.要想接受浏览器的请求,必须先和应用程序之间进行握手连接,只有应用程序同意了,才能将数据包发给我们,我们才能将返回的结果发给应用程序,下面讲讲握手过程
socks5的文档,英语好的可以看看 ,下面我翻译一下握手过程
第一步,程序将发送给代理请求握手的信号
VER | NMETHODS |
METHODS |
1 | 1 | 1~255 |
ver 代表协议版本占用一个字节 这里肯定是 : 5
nmethods 代表下一个字段专用的字节数量 这里不确定