![]() |
Модераторы: Snowy, Poseidon, MetalFan |
![]() ![]() ![]() |
|
Ibragim |
|
|||
Бывалый ![]() Профиль Группа: Участник Сообщений: 177 Регистрация: 28.9.2004 Где: Киев Репутация: нет Всего: нет |
Всем день добрый.
Столкнулся с таким вопросом: Используется неблокирующий сокет из юнита WinSock, необходимо поставить таймаут на соединение. То есть:
собственно задача: на строчке Connect происходит пауза, достаточно большая (точно не експериментировал), если сервер по адресу Addr не отвечает. А хотелось бы в любом случае ждать, положим, 2 секунды, и если не ответил, переходить по ветке then. |
|||
|
||||
Qu1nt |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 602 Регистрация: 13.1.2007 Репутация: 2 Всего: 50 |
Можно его сначала пропинговать, например.
|
|||
|
||||
MaXL |
|
|||
![]() Developer ![]() ![]() Профиль Группа: Участник Сообщений: 380 Регистрация: 24.10.2005 Где: Владивосток Репутация: нет Всего: 2 |
Пинг тоже занимает некоторое время, поэтому это скорее всего не подойдёт. Да и иногда пинг запрещён, а тут ситуация такая(как я понял) сервер включен, доступен, но не отвечает на соединение.
Ibragim, прямо таки много время тянет ? -------------------- MaXL |
|||
|
||||
MetalFan |
|
|||
![]() Аццкий Сотона ![]() ![]() ![]() ![]() Профиль Группа: Комодератор Сообщений: 3815 Регистрация: 2.10.2006 Где: Moscow Репутация: 14 Всего: 128 |
в инди это реализовано с пом.доп. потока, который закрывает сокет по истечению таймаута
-------------------- There are always someone smarter than you... |
|||
|
||||
Ibragim |
|
|||
Бывалый ![]() Профиль Группа: Участник Сообщений: 177 Регистрация: 28.9.2004 Где: Киев Репутация: нет Всего: нет |
да немало, но счас вроде сделал так:
и вроде как стало значительно беспроблемней. То есть все равно не 2 секунды, но рвет достаточно быстро... Похоже что эти SO_RCVTIMEO, SO_SNDTIMEO имеют влияние и на запросы-"обмен приветствиями TCP" В принципе оставим вопрос "полузакрытым" ( ![]() Спасибо за ответы. PS Естественно, создать еще поток - тоже вариант, но там могут быть серьезные подводные камни с утечкой памяти, а программа - это чекер IP (легальный! ![]() PPS Тогда уже не поток, а просто неблокирующий сокет и подождать в цикле... Это сообщение отредактировал(а) Ibragim - 29.1.2008, 22:06 |
|||
|
||||
MetalFan |
|
|||
![]() Аццкий Сотона ![]() ![]() ![]() ![]() Профиль Группа: Комодератор Сообщений: 3815 Регистрация: 2.10.2006 Где: Moscow Репутация: 14 Всего: 128 |
жэсть.... а зачем так??? Добавлено через 29 секунд
тоже вариант -------------------- There are always someone smarter than you... |
|||
|
||||
Ibragim |
|
|||
Бывалый ![]() Профиль Группа: Участник Сообщений: 177 Регистрация: 28.9.2004 Где: Киев Репутация: нет Всего: нет |
скорость, %ля, меряем между подсетями ![]() весь интернет начальство замеряет, потом порежет и продасть ![]() PS Сорри за оффтоп, не удержался ![]() PPS Даже звонили куда-то в представительство, систему на серваке пропатчили чтобы оптимизированно тысячи соединений открывать ![]() Это сообщение отредактировал(а) Ibragim - 29.1.2008, 22:29 |
|||
|
||||
mrbrooks |
|
|||
![]() трололомен ![]() ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 4259 Регистрация: 4.10.2006 Где: Дол Гулдур Репутация: нет Всего: 306 |
Можно использовать:
WaitForSingleObject - для одного объекта или WaitForMultipleObjects - собственно для множества. |
|||
|
||||
Ibragim |
|
|||
Бывалый ![]() Профиль Группа: Участник Сообщений: 177 Регистрация: 28.9.2004 Где: Киев Репутация: нет Всего: нет |
2mrbrooks: эм... и как же?
Названные тобой функции как раз "замораживают" вызывающий их поток, то есть делают как раз противоположное тому, что мне надо. У меня и так поток, в котором идет соединение, "замораживается" на большее время (до того, как ОС решит что хватит ждать соединения), чем мне надо... Это сообщение отредактировал(а) Ibragim - 29.1.2008, 22:37 |
|||
|
||||
![]() ![]() ![]() |
Правила форума "Delphi: Сети" | |
|
Запрещено: 1. Публиковать ссылки на вскрытые компоненты 2. Обсуждать взлом компонентов и делится вскрытыми компонентами
Если Вам помогли и атмосфера форума Вам понравилась, то заходите к нам чаще! С уважением, Snowy, Poseidon, MetalFan. |
1 Пользователей читают эту тему (1 Гостей и 0 Скрытых Пользователей) | |
0 Пользователей: | |
« Предыдущая тема | Delphi: Сети | Следующая тема » |
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |