![]() |
Модераторы: feodorv |
![]() ![]() ![]() |
|
Alca |
|
||||
Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 3993 Регистрация: 14.6.2006 Репутация: 1 Всего: 50 |
Добавлено через 4 минуты и 35 секунд
|
||||
|
|||||
lat |
|
|||
Шустрый ![]() Профиль Группа: Участник Сообщений: 149 Регистрация: 14.1.2008 Репутация: нет Всего: 1 |
И-за этого у меня прога зависает. Не может она дождаться выхода из потока)
А это у тебя как и у меня, зависает? Или ты просто не стал весь лог выкладывать? Это сообщение отредактировал(а) lat - 8.4.2009, 13:35 --------------------
Gott weiß ich will kein Engel sein |
|||
|
||||
Alca |
|
||||||
Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 3993 Регистрация: 14.6.2006 Репутация: 1 Всего: 50 |
Сделай консольное приложение Добавлено через 1 минуту и 24 секунды
По таймауту connect отключается Добавлено через 2 минуты и 38 секунд
6 айпишников просканил, дальше закрыл консоль |
||||||
|
|||||||
Олег2005 |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 421 Регистрация: 26.5.2005 Где: Рига Латвия Репутация: 6 Всего: 11 |
m_addr.sin_addr.s_addr = inet_addr(ip.c_str());
У меня как-то подозрение на STL-овский стринг. А почему нельзя для начала сделать без мудростей inet_addr("10.0.0.45"); Это раз. Второе - файрволл стоит? У него на 80 порт есть предпочтительные приложения - может на 80 иные не пускать Еще: WSAENOTCONN (10057) Socket is not connected. Berkeley description: A request to send or receive data was disallowed because the socket is not connected and (when sending on a datagram socket) no address was supplied. WinSock description: Same as Berkeley, and then some. An application attempted an input/output network function call before establishing an association with a remote socket (i.e. before calling connect() or accept()). . Developer suggestions: Chances are, that if you encounter this error, your application ignored the failure of some previous function. Although some WinSock implementations might not issue other errors if a connection fails, so you can handle this error as you would others that indicate connection failure. |
|||
|
||||
lat |
|
|||
Шустрый ![]() Профиль Группа: Участник Сообщений: 149 Регистрация: 14.1.2008 Репутация: нет Всего: 1 |
Пора этому жуку уже имя давать, пускай будет "Зависяк" от слова зависание)
Да вроде тоже самое. Зависяк находит себе логово при вызове ф-и connect. И не важно на какой итерации, бывает что на первой, а бывает что и на 5. Ну если считать стандартный експишный фаервол за фаерволл - тогда стоит. Но хочу заметить что для него это уж сильно "громкое" звание) Да и вроде не было у этого малыша претензий к мое проге. Добавлено @ 22:57 Олег2005 Ты гений! Действительно все приколы и-за 80 - го порта. Если поставить другой, все жуки исчезают) НО! Как быть если мне нужно найти именно все тачки с 80 - м портом??? Задачу не снимаю с повестки дня, заседание продолжается! ))) ЗЫ знаю ведь что копаем в правильном направлении. Еще немного и ...! ЗЫЗЫ В конечном итоге ответ может быть банальным, но согласитесь. Весьма интригующим и ожидаемым) Это сообщение отредактировал(а) lat - 8.4.2009, 23:00 --------------------
Gott weiß ich will kein Engel sein |
|||
|
||||
lat |
|
|||
Шустрый ![]() Профиль Группа: Участник Сообщений: 149 Регистрация: 14.1.2008 Репутация: нет Всего: 1 |
Этот фаервол совсем обнаглел. Если указывать в качестве порта например 445 или 135 (ищу виндовые тазики), то снова Зависяк вылазит.
Хочу доброе дело сделать, а мне тут грабли со стороны огненной стены. Ну и как с ним бороться? А может это не и-за фарвола...хз. Но почему то зависает только тогда когда сканируется реально работающий порт. ЗЫ Я в "печали", а также в злостном дебаге, пора отдохнуть...пойду 22-ю серию героев посмотрю. Сей "свежак" должен поднять мне веки ... и настроение) Жду ваших советов. Это сообщение отредактировал(а) lat - 8.4.2009, 23:12 --------------------
Gott weiß ich will kein Engel sein |
|||
|
||||
Олег2005 |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 421 Регистрация: 26.5.2005 Где: Рига Латвия Репутация: 6 Всего: 11 |
И так про зависяк.
Если ошибка 10057 - то это не ошибка connect() - это ошибка send/recv при попытке слать по сокету, который был закрыт (shutdown). Так что ошибка в логика программы. теперь здесь DWORD Res = WaitForSingleObject( ht, INFINITE); ht - это у вас дескриптор (handle) А чего вы от этого хендла ждете то? Пример: Here's a bare bones example of using WaitForSingleObject with a thread handle.
A thread signals when it finishes execution. Signal states are managed by the operating system, it's not a good idea to attempt to manipulate them directly. A SetEvent/ResetEvent pair sounds like a good starting point. Это сообщение отредактировал(а) Олег2005 - 8.4.2009, 23:15 |
|||
|
||||
lat |
|
||||
Шустрый ![]() Профиль Группа: Участник Сообщений: 149 Регистрация: 14.1.2008 Репутация: нет Всего: 1 |
Хм. Любопытно. А соб-но не было разрывов то) Не было ни отправки ни считывания данных из сокета. Откуда тогда такая ошибка?) Да это мне Alca дал код, а Я сразу так не подумавши и впихнул его (вот так кстати получаются иногда не только ошибки но и .... =) Раньше без ожидания все было, мне пока незачем ждать завершения потока. Помогите найти) Вроде ж кода немного. Вот последняя моя редакция - место обитания Косяка)
Это сообщение отредактировал(а) lat - 8.4.2009, 23:36 --------------------
Gott weiß ich will kein Engel sein |
||||
|
|||||
Alca |
|
||||||
Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 3993 Регистрация: 14.6.2006 Репутация: 1 Всего: 50 |
А ничего страшного, что этот код находиться в блоке???? Добавлено @ 23:47 Как ты думаешь , что произойдет сним после выхода из этого блока???? ![]() Что произойдет с локальными переменными? Добавлено @ 23:48 Если так
то лучше уже так:
Но хендл потока надо закрывать. Это сообщение отредактировал(а) Alca - 8.4.2009, 23:50 |
||||||
|
|||||||
lat |
|
|||
Шустрый ![]() Профиль Группа: Участник Сообщений: 149 Регистрация: 14.1.2008 Репутация: нет Всего: 1 |
Так это переменные для инициализации библиотеки Ws2_32.dll. В потоке они не используются. Так в чем вопрос) Я его и закрываю то " CloseHandle(ht);". Мне не нужно ждать завершения потока. Можно даже так сделать:
Результат от такой рокировки не изменится. Сейчас задача несколько другая - решить глюк с Зависяком. Это сообщение отредактировал(а) lat - 9.4.2009, 00:36 --------------------
Gott weiß ich will kein Engel sein |
|||
|
||||
Alca |
|
|||
Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 3993 Регистрация: 14.6.2006 Репутация: 1 Всего: 50 |
А зачем их инициализировать если они автоматом разрушаются??? |
|||
|
||||
lat |
|
|||
Шустрый ![]() Профиль Группа: Участник Сообщений: 149 Регистрация: 14.1.2008 Репутация: нет Всего: 1 |
Автоматом, это как? Должны только после "WSACleanup();" ) Добавлено @ 01:24 Как урезать таймауты на соединение? Оказывается висяка нет, просто соединение долго устанавливается.
Это сообщение отредактировал(а) lat - 9.4.2009, 01:46 --------------------
Gott weiß ich will kein Engel sein |
|||
|
||||
lat |
|
|||
Шустрый ![]() Профиль Группа: Участник Сообщений: 149 Регистрация: 14.1.2008 Репутация: нет Всего: 1 |
+ hot fix !!!
Это сообщение отредактировал(а) lat - 9.4.2009, 01:34 --------------------
Gott weiß ich will kein Engel sein |
|||
|
||||
lat |
|
|||
Шустрый ![]() Профиль Группа: Участник Сообщений: 149 Регистрация: 14.1.2008 Репутация: нет Всего: 1 |
немного погуглил.
У меня сложились такие выводы: 1. Если уменьшить таминг - это не есть гут. Так как нет 100% гарантии что хост успеет "ответить". 2. Единств-м решением пинга через сокеты, это увлечения скорости за счет многоза-ти. 3. Намного быстрее для пинга использовать АРП запросы. 4. Учим матчасть) ЗЫ Своим ночным монологом Я почти все разобрал по полочкам. Тема на грани закрытия) ЗЫЗЫ Если кто знает как уменьшить таймаут без потерь, буду только рад это увидеть. Пишите сюда!) Это сообщение отредактировал(а) lat - 9.4.2009, 02:46 --------------------
Gott weiß ich will kein Engel sein |
|||
|
||||
Олег2005 |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 421 Регистрация: 26.5.2005 Где: Рига Латвия Репутация: 6 Всего: 11 |
Во первых, это неверно.
Вы не закрыли сокет - а выгрузили все библиотеки if(sock == INVALID_SOCKET){ WSACleanup(); log("ERORR:INVALID_SOCKET"); } Это в данном случае не причина скорее всего, но так не делают Далее 445 порт на виндовской машине занят виндовской службой Это используют вирусы - вы случайно не его пишете? "Randon" распространяется по IRC-каналам и ресурсам локальных сетей и заражает компьютеры под управлением операционных систем Windows 2000 и Windows XP. Для проникновения на компьютер он подключается к IRC-серверу (или локальной сети), сканирует находящихся на нем пользователей, устанавливает с ними соединение по порту 445 и пытается подобрать пароль из встроенного списка наиболее часто используемых фраз. В случае успешного взлома системы "Randon" пересылает на нее троянскую программу "Apher" |
|||
|
||||
![]() ![]() ![]() |
1 Пользователей читают эту тему (1 Гостей и 0 Скрытых Пользователей) | |
0 Пользователей: | |
« Предыдущая тема | C/C++: Сети | Следующая тема » |
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |