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

本文是关于C++使用Socks5协议进行代理上网的系列文章第二部分,重点介绍了账号认证过程中的关键点,包括数据长度的正确设置、接收数据的处理以及可能出现的错误情况。错误类型包括连接超时和账号密码认证失败。正确的CVER值和Status为0表示认证成功。
摘要由CSDN通过智能技术生成

以下是上一篇文章链接
https://blog.csdn.net/hu421160052/article/details/88870402

协议第二部分:

//第二次发送数据
	index = 0;					//重置长度
	byte Msg2[100];

	//socks5协议部分(3.发送账号密码数据至服务器认证)
	//|--------|-------------|-------------|--------|-------| 
	//|  CVER  |  UserNameL  |   UserName  |  PWDL  |  PWD  |
	//|--------|-------------|-------------|--------|-------|
	//|   1	   |	  1      |     动态    |    1   |  动态 |
	//|--------|-------------|-------------|--------|-------|
	//  CVER是鉴定协议版本,这里应该是0x01.
	//	UserNameL是账户名的长度,大小为1位
	//  UserName是账户名本身 
	//	PWDL是密码的长度,大小为1位
	//	PWDL是PWD本身

	Msg2[index++] = 0x01;						//Version 版本号5
	Msg2[index++] = (byte)strlen(Username);		//Username length 用户名长度
	for (int i = 0; i < strlen(Username); i++)	//Username 用户名
	{
   
		Msg2[index++] = (byte)Username[i];
	}
	Msg2[index++] = (byte)strlen(Password);		//PWD 长度
	for (int i = 0;
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值