![]() |
|
Модераторы: feodorv |
![]()
|
|
| Comm |
|
|||
|
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 269 Регистрация: 31.8.2007 Где: Санкт-Петербург Репутация: -1 Всего: 1 |
1-ый
Допустим есть соединение между клиентом и сервером (соединение keep-alive) Клиент ждет от сервера данных ф-ией recv, и если их нет..так и продолжает висеть в ожидании.. Пытался поставить на сокет тайм аут в 5 сек ф-ией select, не помогло..не выходит из ф-ии recv Вообще можно выйти из recv не разрывая соединения (keep-alive) для опроса следующего keep-alive соединения ? 2-ой ПОможет ли в этой ситуации ф-ия ictolsocket ? Большое Всем Спасибо.. -------------------- =))))) ![]() |
|||
|
||||
| dumb |
|
|||
![]() sceloglauxalbifacies ![]() ![]() ![]() ![]() Профиль Группа: Экс. модератор Сообщений: 2929 Регистрация: 16.6.2006 Репутация: 1 Всего: 158 |
переводи сокет в неблокирующий режим посредством той самой ictolsocket + FIONBIO.
|
|||
|
||||
| Comm |
|
|||
|
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 269 Регистрация: 31.8.2007 Где: Санкт-Петербург Репутация: -1 Всего: 1 |
Что первым сделать надо, поставить тайм аут на сокет,или перевести его не в блокирующий режим ?
-------------------- =))))) ![]() |
|||
|
||||
| Comm |
|
|||
|
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 269 Регистрация: 31.8.2007 Где: Санкт-Петербург Репутация: -1 Всего: 1 |
Спасибо заранее...... Это сообщение отредактировал(а) Comm - 10.10.2007, 19:31 -------------------- =))))) ![]() |
|||
|
||||
| mrbrooks |
|
|||
![]() трололомен ![]() ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 4259 Регистрация: 4.10.2006 Где: Дол Гулдур Репутация: нет Всего: 306 |
Я решал аналогичную проблему совсем недавно с помощью WSAEnumNetworkEvents - с ее помощью как раз и происходит ожидание. Код рабочий на все 100%. Просто я тогда не правильно порт указал
|
|||
|
||||
| Comm |
|
|||
|
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 269 Регистрация: 31.8.2007 Где: Санкт-Петербург Репутация: -1 Всего: 1 |
Привет,обязательно посмотрю твой код))) но тут уже дело принципа... мне не понятно почему то что я написал не работает так как задумывалось...не зря же я писал .... эту в этом примере такая маленькая функция..... а на самом деле она стро на 120 ))) и других ф-ий тоже хватает)) но не таких больших как эта...
В общем вопроспо поводу темы ещё открыт.. Это сообщение отредактировал(а) Comm - 11.10.2007, 17:39 -------------------- =))))) ![]() |
|||
|
||||
| ptr |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 661 Регистрация: 31.5.2006 Где: Новосибирск Репутация: 9 Всего: 14 |
Потому что неправильно работаешь с select. Здесь есть пример работы с select (правда он для *nix). P.S. на будущее выкладывай более полный код.В кусочном сложнее искать ошибку. -------------------- Единственный способ определить границы возможного - это выйти за эти границы, в невозможное. Артур Кларк. |
|||
|
||||
| Comm |
|
|||
|
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 269 Регистрация: 31.8.2007 Где: Санкт-Петербург Репутация: -1 Всего: 1 |
Отличный пример))) посмотрел,понял,сделал))) все работает отлично...
Спасибо ptr -------------------- =))))) ![]() |
|||
|
||||
![]()
|
| 0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей) | |
| 0 Пользователей: | |
| « Предыдущая тема | C/C++: Сети | Следующая тема » |
|
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |