![]() |
Модераторы: feodorv |
![]() ![]() ![]() |
|
fantast |
|
|||
![]() Шустрый ![]() Профиль Группа: Участник Сообщений: 147 Регистрация: 10.12.2006 Где: минск, столица на шей Родины Репутация: нет Всего: 2 |
привет всем. вопрос в том, как мне изменить свойства accept так, чтобы он не ждал (если очередь пуста) когда ктонить обратится к серверу с запросом, а сразу выдовал, что желающих нету.
спасибо --------------------
Эпитафия: Он старался. Неизвестный |
|||
|
||||
dumb |
|
|||
![]() sceloglauxalbifacies ![]() ![]() ![]() ![]() Профиль Группа: Экс. модератор Сообщений: 2929 Регистрация: 16.6.2006 Репутация: 1 Всего: 158 |
перевести сокет в неблокирующий режим(nonblocking mode).
только нужно иметь ввиду, что изменится не только работа accept, но и работа всех остальных функций. |
|||
|
||||
fantast |
|
|||
![]() Шустрый ![]() Профиль Группа: Участник Сообщений: 147 Регистрация: 10.12.2006 Где: минск, столица на шей Родины Репутация: нет Всего: 2 |
супер, спасибо
--------------------
Эпитафия: Он старался. Неизвестный |
|||
|
||||
GremlinProg |
|
|||
Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Комодератор Сообщений: 2706 Регистрация: 9.8.2005 Где: Тюмень Репутация: 1 Всего: 106 |
можно и не отключать блокировку (иногда без неё муторно...), используем функцию WSAEventSelect, которая ассоциирует объект ожидания WSAEVENT с необходимым сигналом, в том числе и FD_ACCEPT. Чтобы проверить, сработало ли событие исполльзуем WSAWaitForMultipleEvents с dwTimeout = 0. Только здесь, в отличии от обычных событий (CreateEvent) нельзя создать событие-автомат (может и можно, не нашел), которое само сбрасывается после отработки, т.е. нужно самим его сбрасывать (WSAResetEvent)
-------------------- "Гений всегда разумнее, чем умнее. Ум — это машина, разум — водитель этой машины." |
|||
|
||||
dumb |
|
|||
![]() sceloglauxalbifacies ![]() ![]() ![]() ![]() Профиль Группа: Экс. модератор Сообщений: 2929 Регистрация: 16.6.2006 Репутация: 1 Всего: 158 |
GremlinProg,
![]()
|
|||
|
||||
GremlinProg |
|
|||
Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Комодератор Сообщений: 2706 Регистрация: 9.8.2005 Где: Тюмень Репутация: 1 Всего: 106 |
да, dumb, действительно, на слушающем сокете мы из него обычно не читаем, поэтому и проблем нету. Но на клиентском сокете - и читаем и пишем. Правда к accept это не имеет отношения, тем не менее, для полноты изложения надо дополнить
Это сообщение отредактировал(а) GremlinProg - 27.5.2007, 12:42 -------------------- "Гений всегда разумнее, чем умнее. Ум — это машина, разум — водитель этой машины." |
|||
|
||||
![]() ![]() ![]() |
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей) | |
0 Пользователей: | |
« Предыдущая тема | C/C++: Сети | Следующая тема » |
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |