我的袜子v5握手有什么问题?

时间:2013-03-31 04:39:57

标签: c++ c network-programming socks

我试图通过实施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告诉我“[警告]取袜子握手失败。关闭。” 我发送的数据包有问题吗?

1 个答案:

答案 0 :(得分:0)

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

在第二次发送呼叫中,您使用的是sizeof(秒),结果是一个字符。

使用:

 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);