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