此代码实现通过 HTTP, SOCK4, SOCK5 代理连接服务器
1. SOCK4 (Sock4.cs) 客户端请求包协议(OnConnected):
服务器回复包协议(OnReceived):
检测 VN == 0 && CD == 90 即为代理成功 |
2. SOCK5 非验证模式 (Sock5.cs) 客户端请求包协议(OnConnected):
服务器回复包协议(OnReceived):
服务器回复后. 检测 VER == 5 && METHOD == 0 成功后, 发送请求代理协议包 客户端请求包协议(OnReceived):
服务器回复包协议(OnReceived):
检测 VER == 5 && CMD == 0 即为代理成功 |
3. SOCK5 验证模式 (Sock5Auth.cs) 注: RFC 中未找到请求验证包协议,本人根据 C++ 程序分析自行整理. 如有错误,请告知. 客户端请求包协议(OnConnected):
服务器回复包协议(OnReceived):
服务器回复后. 检测 VER == 5 && METHOD == 2 成功后, 发送验证代理协议包 客户端请求包协议(OnReceived):
服务器回复包协议(OnReceived):
检测 CMD == 1 && REP == 0, 发送请求代理协议包 客户端请求包协议(OnReceived):
服务器回复包协议(OnReceived):
检测 VER == 5 && CMD == 0 即为代理成功 |
4. HTTP (HTTP.cs) 注: 未找到相关RFC文档. 请求验证包协议,本人根据 C++ 程序分析自行整理. 如有错误,请告知. 客户端请求包协议(OnReceived): CONNECT IP:PORT HTTP/1.1\r\nUser-Agent: MyApp/0.1\r\n\r\n 服务器回复包协议(OnReceived): 返回字符串中包含 HTTP/1.1 200 OK 或者 HTTP/1.0 200 即为代理成功 |
附上源码下载:
原文链接: https://www.cnblogs.com/hackerttao/archive/2012/11/03/2752667.html
欢迎关注
微信关注下方公众号,第一时间获取干货硬货;公众号内回复【pdf】免费获取数百本计算机经典书籍
原创文章受到原创版权保护。转载请注明出处:https://www.ccppcoding.com/archives/68005
非原创文章文中已经注明原地址,如有侵权,联系删除
关注公众号【高性能架构探索】,第一时间获取最新文章
转载文章受原作者版权保护。转载请注明原作者出处!