解决方案

C++使用Socks5协议进行代理上网(一)

seo靠我 2023-09-26 03:51:58

网上已经有很多文档详细介绍了协议内容以及怎么去使用,最近在做这个项目,已经完成了TCP协议的全部部分,在这里做下笔记顺便和大家分享下,如果有需要的同志们可以用我这个作为模板,已经精通这些的大神们希望看SEO靠我到问题能给我提出来,我也有几个地方是一知半解,其中有些我遇到的注意事项我会单独注明,防止自己后再犯同样的错误。。。

下面是协议第一部分代码(注意,和代理服务器的连接在这一部分已经完成,这里只贴出了关于通SEO靠我信协议的主要代码,C++中怎么样和代理服务器进行连接如果不了解的话,可以参考我的另一篇博客:https://blog.csdn.net/hu421160052/article/details/8726SEO靠我2226)int index = 0;byte Msg1[100];//socks5协议部分(1.发送数据至服务器)//|--------|-------------|-------------| /SEO靠我/| VER | NMETHOD | METHODS | //|--------|-------------|-------------|//| 1 | 1 | 1-255 |//|--------|SEO靠我-------------|-------------|// VER是SOCKS版本,这里应该是0x05.// NMETHODS是METHODS部分的长度.// METHODS是客户端支持的认证方式列SEO靠我表,每个方法占1字节。当前的定义是: // 0x00 不需要认证// 0x01 GSSAPI// 0x02 用户名、密码认证// 0x03 - 0x7F由IANA分配(保留)// 0x80 - 0xFSEO靠我E为私人方法保留// 0xFF 无可接受的方法Msg1[index++] = 0x05; //Version 版本号Msg1[index++] = 0x01; //Method 方法Msg1[indeSEO靠我x++] = 0x02; //Username/Password 认证用户名/认证密码//第一次发送数据send(sockClient, (const char*)Msg1, index, 0);chSEO靠我ar Send_Msg[100];sprintf(Send_Msg, "VER:0x%d%d\r\n METHOD:0x%d%d\r\n Method:0x%d%d\r\n", (Msg1[0] / SEO靠我16),(Msg1[0] % 16), (Msg1[1] / 16), (Msg1[1] % 16), (Msg1[2] / 16), (Msg1[2] % 16));MessageBoxA(NULLSEO靠我, (const char*)Send_Msg, "发送数据:", NULL);byte RecvMsg1[10];numl=recv(sockClient, (char*)RecvMsg1, sizSEO靠我eof((const char*)RecvMsg1), 0);int q00 = (RecvMsg1[0] / 16),q01= (RecvMsg1[0] % 16);int q10 = (RecvMSEO靠我sg1[1] / 16), q11 = (RecvMsg1[1] % 16); char result[1024];//socks5协议部分(2.服务器响应数据)//|--------|-------SEO靠我------|//| VER | METHOD |//|--------|-------------|//| 1 | 1 |//|--------|-------------|//VER是SOCKS版SEO靠我本,这里应该是0x05;//METHOD是服务端选中的方法。如果返回0xFF表示没有一个认证方法被选中,客户端需要关闭连接。sprintf(result,"Length:%d\r\n VER:0x%dSEO靠我%d\r\nMETHOD:0x%d%d\r\n", numl,q00,q01,q10,q11);MessageBoxA(NULL, result, "服务器返回结果:", NULL);

在这里,接受完数SEO靠我据后,socks5第一部分协议内容就算完成了,因为我选择的是账号密码认证方式,也只给服务器发送了那种连接方式,所以服务器最后返回我了一个5和2,如果是没有账号密码的认证方式,可以仔细看下协议内容这一部SEO靠我分是怎么发送消息。

下面是第二部分:

https://blog.csdn.net/hu421160052/article/details/88870940
“SEO靠我”的新闻页面文章、图片、音频、视频等稿件均为自媒体人、第三方机构发布或转载。如稿件涉及版权等问题,请与 我们联系删除或处理,客服邮箱:html5sh@163.com,稿件内容仅为传递更多信息之目的,不代表本网观点,亦不代表本网站赞同 其观点或证实其内容的真实性。

网站备案号:浙ICP备17034767号-2