Top.Mail.Ru
Мастера DELPHI, Delphi programming community Титульная страница Поиск, карта сайта Написать письмо 
| Новости | Поиск | FAQ | Статьи | Книги | Новости VCL |
| Форумы ЧАТ | Орешник | KOL и MCK |
Форумы -» Основная («Начинающим»)/ Базы / WinAPI / Компоненты / Сети / Media / Игры / Corba и COM / KOL / FreePascal / .Net / Прочее / RSDN.ORG

« предыдущая ветвь | форум | следующая ветвь »

Timeout socket`ов возможно изменить ? [D7, WinXP]


МистерТ ©   (2008-03-07 08:41:00) 

Здравствуйте.

Работаю непосредственно с сокетами (WinSocket2.pas). При выполнении recv или send один из возможных результатов означает timeout, т.е. истекло время ожидания. Подскажите пожалуйста, как это время можно изменить, если можно вообще. Если изменить нельзя - то какая величина задана "по умолчанию" ?

Заранее спасибо.


SpellCaster   (2008-03-12 12:54:00) [1]

function TMySocket.Ready: Boolean;
var FDReadSet: TFDSet; // структура - список сокетов
   TimeVal: TTimeVal; // время, сколько ждать
begin
if not fActive then begin Result:=False; Exit; end; // поле fActive имеет высший приоритет
TimeVal.tv_sec:=fTimeout div 1000;           // время в с
TimeVal.tv_usec:=(fTimeout mod 1000)*1000;   // время в мкс
FD_ZERO(FDReadSet);                          // обнуляем структуру
FD_SET(fSckt,FDReadSet);                     // заносим хэндл
select(0,@FDReadSet,nil,nil,@TimeVal);
Result:=FD_ISSET(fSckt,FDReadSet);
end;


if not sock.Ready then ...


DVM   (2008-03-08 22:59:00) [2]


> recv или send один из возможных результатов означает timeout

использую неблокирующие сокеты - там и сделаешь свой таймаут какой хочешь


Сергей М.   (2008-03-07 16:19:00) [3]


> как это время можно изменить


Не надо его менять.
Такая ошибка означает аварийнуюситуацию.


МистерТ   (2008-03-07 09:51:00) [4]

Огромное спасибо.


Сергей М.   (2008-03-07 09:24:00) [5]

см. Get/SetSockOpt(..SO_RCVTIMEO|SO_SNDTIMEO..)


Наверх

Титульная страница Поиск, карта сайта Написать письмо