![]() |
Модераторы: feodorv |
![]() ![]() ![]() |
|
barberan |
|
|||
Новичок Профиль Группа: Участник Сообщений: 17 Регистрация: 28.4.2007 Репутация: нет Всего: нет |
Вот таким кодом хотел соединиться и оставить сообщение на канале IRC сервера через СОКС-5. НО, почему-то ошибка...
помогите разобраться, плз,спс. |
|||
|
||||
ptr |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 661 Регистрация: 31.5.2006 Где: Новосибирск Репутация: 9 Всего: 14 |
И с какой же ошибкой? -------------------- Единственный способ определить границы возможного - это выйти за эти границы, в невозможное. Артур Кларк. |
|||
|
||||
GremlinProg |
|
|||
Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Комодератор Сообщений: 2706 Регистрация: 9.8.2005 Где: Тюмень Репутация: 1 Всего: 106 |
а вообще ты уверен, что порт SOCKS5 - это 30027?
Обычно он работает на порту 1080. Добавлено через 5 минут и 36 секунд это ошибка авторизации сервера, в этом месте он должен прислать ответ, что такой вот мол метод поддерживается. Первый байт ответа - нгомер версии, а второй - номер метода, если номер метода равен 255, значит ни один из предложенных методов авторизации не поддерживается, но по ходу, у тебя даже до этого не доходит, проверь все же порт. -------------------- "Гений всегда разумнее, чем умнее. Ум — это машина, разум — водитель этой машины." |
|||
|
||||
GremlinProg |
|
|||
Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Комодератор Сообщений: 2706 Регистрация: 9.8.2005 Где: Тюмень Репутация: 1 Всего: 106 |
ясно, короче ты хочешь приконнектишься к серваку, у которого нет авторизации, а у твоего - есть, вот он и выходит.
посмотри, какой из них возвращает сервер и используй защищенный вход. Это сообщение отредактировал(а) GremlinProg - 28.4.2007, 16:45 -------------------- "Гений всегда разумнее, чем умнее. Ум — это машина, разум — водитель этой машины." |
|||
|
||||
ptr |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 661 Регистрация: 31.5.2006 Где: Новосибирск Репутация: 9 Всего: 14 |
Я в курсе кто кому что шлёт. Авторизация у него проходит нормально (строки 48-50), а вот на запрос сервер возвращает ошибку, вот эту то ошибку я и хотел узнать. -------------------- Единственный способ определить границы возможного - это выйти за эти границы, в невозможное. Артур Кларк. |
|||
|
||||
GremlinProg |
|
|||
Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Комодератор Сообщений: 2706 Регистрация: 9.8.2005 Где: Тюмень Репутация: 1 Всего: 106 |
ptr, я же сказал:
сервер ни какой ошибки не шлет, просто клиент не работает с запароленным сервером, об этом говорит как раз 50-я строка. Добавлено через 3 минуты и 32 секунды это у него функция возвращает 1, т.е. ошибка, которую он анализирует в 96 строке. -------------------- "Гений всегда разумнее, чем умнее. Ум — это машина, разум — водитель этой машины." |
|||
|
||||
barberan |
|
|||
Новичок Профиль Группа: Участник Сообщений: 17 Регистрация: 28.4.2007 Репутация: нет Всего: нет |
if(ans[1] != 0) return 1; //<--- !!!!здесь почему-то выходим с ошибкой!!!
У меня там не НОЛЬ, а ЕДИНИЦА... в этом-то и вся суть... и что-же делать? |
|||
|
||||
GremlinProg |
|
|||
Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Комодератор Сообщений: 2706 Регистрация: 9.8.2005 Где: Тюмень Репутация: 1 Всего: 106 |
не должно там быть единицы, потому что запрос идет для нуля(то бишь без пароля):
т.е. ответ может быть только 255 или 0 третьего не дано поставь ноль Добавлено @ 22:19 либо установи req[2] = 1 и читай вот это: http://www.faqs.org/faqs/kerberos-faq/gene...section-84.html Это сообщение отредактировал(а) GremlinProg - 28.4.2007, 22:20 -------------------- "Гений всегда разумнее, чем умнее. Ум — это машина, разум — водитель этой машины." |
|||
|
||||
barberan |
|
|||
Новичок Профиль Группа: Участник Сообщений: 17 Регистрация: 28.4.2007 Репутация: нет Всего: нет |
Если req[2] =1, то там ведь еще пол кода переписывать???
|
|||
|
||||
GremlinProg |
|
|||
Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Комодератор Сообщений: 2706 Регистрация: 9.8.2005 Где: Тюмень Репутация: 1 Всего: 106 |
конечно, потому ссылку и дал
-------------------- "Гений всегда разумнее, чем умнее. Ум — это машина, разум — водитель этой машины." |
|||
|
||||
ptr |
|
||||||||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 661 Регистрация: 31.5.2006 Где: Новосибирск Репутация: 9 Всего: 14 |
GremlinProg, открой глаза и внимательно посмотри на код. Ошибка авторизации должна возникать в 50 строке, а у него в 64 (разница надеюсь заметна)! С 42 по 50 он посылает запрос и принимает ответ на авторизацию (тут всё нормально). Дальше он формирует и отсылает CONNECT-пакет и только потом от сервера приходит ошибка general failure(1). Не надо особо ничего переписывать (если авторизацию добавлять не хочешь). Надо добавить функции по приёму/отсылке всего буфера и изменить
на
И смени SOCKS сервер на другой. -------------------- Единственный способ определить границы возможного - это выйти за эти границы, в невозможное. Артур Кларк. |
||||||||
|
|||||||||
GremlinProg |
|
|||
Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Комодератор Сообщений: 2706 Регистрация: 9.8.2005 Где: Тюмень Репутация: 1 Всего: 106 |
ptr, ты прав, так и есть, невнимательно смотрел, молодец, что поправил, а я думаю, чо barberan про единицу говорит. Тогда запрос нормальный, а вот с ответом, действительно непонятно, нужно проверить какой код ошибки присылает сервер:
barberan поставь брекпойнт на 64 строку и посмотри содержимое ans[1], она может быть восьмой, тогда нужно будет вместо домена, конкретно, IP адрес писать. Добавлено через 7 минут и 48 секунд зачем? -------------------- "Гений всегда разумнее, чем умнее. Ум — это машина, разум — водитель этой машины." |
|||
|
||||
ptr |
|
||||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 661 Регистрация: 31.5.2006 Где: Новосибирск Репутация: 9 Всего: 14 |
Для последующего использования сокета в строках 100-109. Кстати на других SOCKS серверах работает нормально. Это сообщение отредактировал(а) ptr - 29.4.2007, 16:37 -------------------- Единственный способ определить границы возможного - это выйти за эти границы, в невозможное. Артур Кларк. |
||||
|
|||||
GremlinProg |
|
|||
Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Комодератор Сообщений: 2706 Регистрация: 9.8.2005 Где: Тюмень Репутация: 1 Всего: 106 |
согласен а вот это все таки непонятно, в 64 строке байт должен сравниваться с нулем. 0 - значит все Ок. тут не обязательно он запрашивает конкретно ipv4 адрес для бинда (см. 65 стр) -------------------- "Гений всегда разумнее, чем умнее. Ум — это машина, разум — водитель этой машины." |
|||
|
||||
ptr |
|
||||||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 661 Регистрация: 31.5.2006 Где: Новосибирск Репутация: 9 Всего: 14 |
В смысле? Я про то, что recv/send не отсылает/принимает весь буфер. -------------------- Единственный способ определить границы возможного - это выйти за эти границы, в невозможное. Артур Кларк. |
||||||
|
|||||||
![]() ![]() ![]() |
1 Пользователей читают эту тему (1 Гостей и 0 Скрытых Пользователей) | |
0 Пользователей: | |
« Предыдущая тема | C/C++: Сети | Следующая тема » |
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |