Таймауты в сокетах

Ответить

Код подтверждения
Введите код в точности так, как вы его видите. Регистр символов не имеет значения.

BBCode ВКЛЮЧЁН
[img] ВКЛЮЧЁН
[url] ВКЛЮЧЁН
Смайлики ОТКЛЮЧЕНЫ

Обзор темы
   

Развернуть Обзор темы: Таймауты в сокетах

Kolinus » 24 авг 2004, 16:31

Я понимаю - можно и паровозом дверь открывать - вместе с косяком.
Но про пинг - я серьезно - там сырцов-то кил 10 максимум будет
по -моему я все-таки видел на codeguru.com в разделе Visual С++

AiK » 24 авг 2004, 15:46

Kolinus, ага - следующий совет взять исходники Mozilla, или в крайнем случае Firefox и посмотреть как люди делают. Тоже быстро работает :D

Kolinus » 24 авг 2004, 13:37

сорри - codeproject.ru(com)

Kolinus » 24 авг 2004, 12:59

Меня уже и цитируют - круто :D
Тогда еще два варианта - вариант номер 1 сделать еще один поток который будет убивать поток с гет... через нужное время.
Вариант номер зва - где-то в инете (coeproject.ru(com) sources.ru codeguru.ru(com)) я видел исходники утилитки ping - может они помогут - пинг -то вроде быстро работает

AiK » 24 авг 2004, 01:10

А ты уверен чт отебе без гетхостбайнейм ну никак не обойтись?
Угу. Почему-то сокет не создаётся по имени :) , а IP изменяется чаще, чем выходят изменения моей проги.
гетхостбайадресс например на вин2к ждет всего 8 секунд
Фигу. Если сетки нет совсем, то он таки да, около 5 секунд думает. А вот если сеть есть, но DNS сервер помер, то около 25-ти (+\- 5)секунд думает.
даже прогрессбар можно нарисовать
Не тот случай.

Полагаю, что придётся флажками обвешиваться.

Kolinus » 24 авг 2004, 01:01

А ты уверен чт отебе без гетхостбайнейм ну никак не обойтись?
гетхостбайадресс например на вин2к ждет всего 8 секунд
и второе - а почему неприемлимо?? основная прога-то не подвиснет и будет на все реагировать - ну а тут коннект и коннект - ждите (даже прогрессбар можно нарисовать :) )

AiK » 23 авг 2004, 18:51

Kolinus, молодца! Только если DNS сервер не доступен, то gethostbyname ничего не возвращает ок 30 секунд. Что есть неприемлемо. Адназначна! :)

Kolinus » 23 авг 2004, 17:57

А в чем собсно проблема?
создаешь поток который вызывает метод gethostbyname и завершает сам себя. если get.. вернула не NULL - сохраняет куда-то стуктуру.
если нет - то ничего

AiK » 23 авг 2004, 14:30

Kolinus, многопоточность это хорошо, и, допустим, при помощи select я узнаю произошёл коннект или нет, и если нет, то завершу поток, который завис на connect. Но вот никак не могу взять в толк, как извратится подобным образом для операции gethostbyname?

Kolinus » 23 авг 2004, 14:11

не знаю как установить таймаут - сам в свое время искал - не нашел и сделал следующее - многопотоковость товарищи это будущее (благо железо позволяет).
Я все такие операции выносил в отдельный поток

Вернуться к началу