上一篇文章连接:https://blog.csdn.net/hu421160052/article/details/88870940
这里是账号密码认证之后,这里需要你提供你要到达的具体的目的server的IP和Port,以及连接的具体方式
index = 0;
byte Msg3[100];
//socks5协议部分(5.客户端认证成功后开始进行请求)
//|-------|-------|-------|--------|-----------|------------|
//| VER | CMD | RSV | ATYP | DST.ADDR | DST.ADDR |
//|-------|-------|-------|--------|-----------|------------|
//| 1 | 1 | 0x00 | 1 | Active | 2 |
//|-------|-------|-------|--------|-----------|------------|
// VER.是SOCKS协议版本,这里应该是0x05.
// CMD.是SOCKS的命令码:
// 0x01:表示CONNECT请求
// 0x02:表示BIND请求
// 0x03:表示UDP转发
// RSV.0x00:保留,无实际作用
// ATYP.DST.ADDR类型:
// 0x01:表示IPV4地址
// 0x03:表示域名格式
// 0x04:表示IPV6地址
// DST.ADDR.目的地址
// 当ATYP=0x01 DST.ADDR部分为四字节长度,内容为IP本身
// 当ATYP=0x03 第一个部分为一个1字节表示域名长度,第二部分就是剩余内容为具体域名。Active表示长度不定。没有\0作为结尾
// DST.PORT 网络字节序表示的目的端口
Msg3[index++] = 0x05; //Version 版本号5
Msg3[index++] = 0x01; //CMD CONNECT请求
Msg3[index++] = 0x00; //Reserve = 0x00 must be ;
Msg3[index++] = 0x01; //ATYP=IPV4
int ads1 = atoi(ByteAddress[0]);
int ads2 = atoi(ByteAddress[1]);
int ads3 = atoi(ByteAddress[2]);
int ads4 = atoi(ByteAddress[3]);
Msg3[index++] = (byte)(0xff & ads1);
Msg3[index++] = (byte)