| Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате |
| Форум программистов > C/C++: Сети > соединение с IRC через SOCKS-5 |
| Автор: barberan 28.4.2007, 11:54 | ||
Вот таким кодом хотел соединиться и оставить сообщение на канале IRC сервера через СОКС-5. НО, почему-то ошибка...
помогите разобраться, плз,спс. |
| Автор: ptr 28.4.2007, 13:10 | ||
И с какой же ошибкой? |
| Автор: GremlinProg 28.4.2007, 16:24 |
| а вообще ты уверен, что порт SOCKS5 - это 30027? Обычно он работает на порту 1080. Добавлено через 5 минут и 36 секунд это ошибка авторизации сервера, в этом месте он должен прислать ответ, что такой вот мол метод поддерживается. Первый байт ответа - нгомер версии, а второй - номер метода, если номер метода равен 255, значит ни один из предложенных методов авторизации не поддерживается, но по ходу, у тебя даже до этого не доходит, проверь все же порт. |
| Автор: GremlinProg 28.4.2007, 16:42 | ||
ясно, короче ты хочешь приконнектишься к серваку, у которого нет авторизации, а у твоего - есть, вот он и выходит.
посмотри, какой из них возвращает сервер и используй защищенный вход. |
| Автор: GremlinProg 28.4.2007, 17:49 | ||
ptr, я же сказал:
сервер ни какой ошибки не шлет, просто клиент не работает с запароленным сервером, об этом говорит как раз 50-я строка. Добавлено через 3 минуты и 32 секунды это у него функция возвращает 1, т.е. ошибка, которую он анализирует в 96 строке. |
| Автор: barberan 28.4.2007, 22:06 |
| if(ans[1] != 0) return 1; //<--- !!!!здесь почему-то выходим с ошибкой!!! У меня там не НОЛЬ, а ЕДИНИЦА... в этом-то и вся суть... и что-же делать? |
| Автор: GremlinProg 28.4.2007, 22:17 |
| не должно там быть единицы, потому что запрос идет для нуля(то бишь без пароля): т.е. ответ может быть только 255 или 0 третьего не дано поставь ноль Добавлено @ 22:19 либо установи req[2] = 1 и читай вот это: http://www.faqs.org/faqs/kerberos-faq/general/section-84.html |
| Автор: barberan 29.4.2007, 09:47 |
| Если req[2] =1, то там ведь еще пол кода переписывать??? |
| Автор: GremlinProg 29.4.2007, 10:18 |
| конечно, потому ссылку и дал |
| Автор: ptr 29.4.2007, 14:26 | ||||||||
GremlinProg, открой глаза и внимательно посмотри на код. Ошибка авторизации должна возникать в 50 строке, а у него в 64 (разница надеюсь заметна)! С 42 по 50 он посылает запрос и принимает ответ на авторизацию (тут всё нормально). Дальше он формирует и отсылает CONNECT-пакет и только потом от сервера приходит ошибка general failure(1). Не надо особо ничего переписывать (если авторизацию добавлять не хочешь). Надо добавить функции по приёму/отсылке всего буфера и изменить
на
И смени SOCKS сервер на другой. |
| Автор: GremlinProg 29.4.2007, 15:16 | ||
ptr, ты прав, так и есть, невнимательно смотрел, молодец, что поправил, а я думаю, чо barberan про единицу говорит. Тогда запрос нормальный, а вот с ответом, действительно непонятно, нужно проверить какой код ошибки присылает сервер:
barberan поставь брекпойнт на 64 строку и посмотри содержимое ans[1], она может быть восьмой, тогда нужно будет вместо домена, конкретно, IP адрес писать. Добавлено через 7 минут и 48 секунд зачем? |
| Автор: ptr 29.4.2007, 16:35 | ||||
Для последующего использования сокета в строках 100-109. Кстати на других SOCKS серверах работает нормально. |
| Автор: GremlinProg 29.4.2007, 16:55 |
согласен а вот это все таки непонятно, в 64 строке байт должен сравниваться с нулем. 0 - значит все Ок. тут не обязательно он запрашивает конкретно ipv4 адрес для бинда (см. 65 стр) |
| Автор: ptr 30.4.2007, 07:41 | ||||||
В смысле? Я про то, что recv/send не отсылает/принимает весь буфер. |
| Автор: barberan 30.4.2007, 17:44 |
| GremlinProg, "а вот это все таки непонятно, в 64 строке байт должен сравниваться с нулем. 0 - значит все Ок.", У меня там не НОЛЬ, а единица => не все в порядке.. Добавлено через 7 минут и 10 секунд ptr, Какую-какую функцию добавить??? (Не надо особо ничего переписывать (если авторизацию добавлять не хочешь). Надо добавить функции по приёму/отсылке всего буфера и изменить) |
| Автор: ptr 2.5.2007, 14:15 | ||
Например (взято http://www.rsdn.ru/article/unix/sockets.xml):
|