![]() |
Прежде чем задать вопрос, смотрите FAQ.
Рекомендуем загрузить DRKB.
![]() |
silver |
![]()
Сообщение
#1
|
![]() Группа: Пользователи Сообщений: 3 Репутация: ![]() ![]() ![]() |
Уважаемый All!
При работе с сокетами использую функцию Select для проверки входящих сообщений. Последним параметром функции является либо время ожидания (через указатель на структуру), либо NULL. В последнем случае функция ждет до получения чего-либо. Проблема в следущем: если передаю NULL, все нормально работает. А вот если пытаюсь только проверить состояние, то данных нет, и периодически появлется SOCKET_ERROR. Код следующий: Код var Wait: TTimeVal; ... Wait.tv_sec := 0; Wait.tv_usec := 0; Res := select(0, @fdset, nil, nil, @Wait); ... Будем полагать, что структура fdset заполнена правильно. ;) Вопрос: как использовать функцию, чтобы результат возвращался сразу, без ожидания? Сообщение отредактировано: volvo - 5.01.2005 12:39 |
![]() ![]() |
silver |
![]()
Сообщение
#2
|
![]() Группа: Пользователи Сообщений: 3 Репутация: ![]() ![]() ![]() |
Хм... Уточняю:
Программа работает в локальной сети по TCP/IP (проще говоря, ЧАТ ![]() Общение идет через broadcast-сообщения, потому и сокеты настроены соотвственно. Кстати, может все же что-то не так в настройках сокетов?.. Но тогда почему функция нормально работает с вариантом Select(... ,nil)? Прочитал Help по API (все по мануалу!), пролистал кучу ссылок в инете, просмотрел что есть в Делфи (кстати, единственное место, где используется функция select - это модуль SvrHTTPIndy.pas, и там все сделано аналогично тому, что я привел выше). Непонятно... |
![]() ![]() |
![]() |
Текстовая версия | 10.07.2025 1:34 |