-2

我正在尝试通过实现 SOCKS5 来让我的程序通过 tor 引导它的流量,到目前为止我已经得到了这个:

char first =(0x00,0x01,0x05);
char sec=(0x50,0x00,0xE2,0xE1,0x7D,0x4A,0x01,0x00,0x01,0x05);
send(ProxySocket, &first,(int) 3,0);
send(ProxySocket, &sec, (int) sizeof(sec),0);

但是当我运行我的程序时,tor 告诉我“[警告] 获取袜子握手失败。关闭。” 我发送的数据包有问题吗?

4

1 回答 1

0

这段代码是错误的。char first 的值 = (0x00, 0x01, 0x05); 将是 0x05。请参阅作业中的括号规则。我认为应该是 char first[] = {0x00, 0x01, 0x05}; 现在您可以先使用 sizeof 运算符。

在第二个发送调用中,您使用的是 sizeof(sec) ,结果是一个字符。

采用:

 char sec[] = {0x50,0x00,0xE2,0xE1,0x7D,0x4A,0x01,0x00,0x01,0x05};

您的代码应该是:

char first[] ={0x00,0x01,0x05};
char sec[]={0x50,0x00,0xE2,0xE1,0x7D,0x4A,0x01,0x00,0x01,0x05};
send(ProxySocket, first,(int) sizeof(first),0);
send(ProxySocket, sec, (int) sizeof(sec),0);
于 2013-03-31T04:47:00.517 回答