Я пытаюсь заставить мою программу направлять трафик через tor, внедряя SOCKS5, и пока у меня есть это:
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 сообщает мне: «[warn] загрузка рукопожатия socks не удалась. Закрытие.» Что-то не так с пакетами, которые я отправляю?
Этот код неверен.
Ценность
первый символ = (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);
Других решений пока нет …