![]() |
Модераторы: feodorv |
![]() ![]() ![]() |
|
SVN74 |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 740 Регистрация: 5.5.2008 Где: Комсомольск на Дн епре Репутация: 1 Всего: 18 |
Доброго времени суток!
Подскажите пожалуйста как мне закрыть (блокирующий) connect досрочно (это необходимо для быстрого закрытия программы) , к примеру как в браузер(ах) ? |
|||
|
||||
boostcoder |
|
|||
![]() pattern`щик ![]() ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 5458 Регистрация: 1.4.2010 Репутация: 13 Всего: 110 |
||||
|
||||
SVN74 |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 740 Регистрация: 5.5.2008 Где: Комсомольск на Дн епре Репутация: 1 Всего: 18 |
||||
|
||||
boostcoder |
|
|||
![]() pattern`щик ![]() ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 5458 Регистрация: 1.4.2010 Репутация: 13 Всего: 110 |
ну так замени на asio. либо используй asio сокет и асинхронный коннект, а все остальное оставь как прежде. благо, asio::socket возвращает нативный дескриптор. зы я хз, почему программисты сами создают себе проблемы ![]() |
|||
|
||||
feodorv |
|
|||
![]() Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Комодератор Сообщений: 2214 Регистрация: 30.7.2011 Репутация: 10 Всего: 45 |
Не помню точно, как я когда-то решал подобную проблему, но можно попробовать закрыть сокет через closesocket (или просто close на юниксах) из другого потока...
А приложение в добавок однопоточное? Конечно, boostcoder прав. Нужен неблокирующий сокет. Если вся программа уже настроена на блокирующий сокет, то, по крайней мере, connect можно реализовать с помощью неблокируемого сокета, а затем перевести его обратно в блокирующее состояние через ioctlsocket( FIONBIO ) или аналогом, если дело происходит не на виндах. -------------------- Напильник, велосипед, грабли и костыли - основные инструменты программиста... |
|||
|
||||
SVN74 |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 740 Регистрация: 5.5.2008 Где: Комсомольск на Дн епре Репутация: 1 Всего: 18 |
Всем спасибо, просто сделаю неблокирующий connect.
|
|||
|
||||
![]() ![]() ![]() |
1 Пользователей читают эту тему (1 Гостей и 0 Скрытых Пользователей) | |
0 Пользователей: | |
« Предыдущая тема | C/C++: Сети | Следующая тема » |
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |