Главная страница


ru.unix

 
 - RU.UNIX ----------------------------------------------------------------------
 From : Mike E. Matsnev                      2:5020/400     10 Aug 2000  20:13:31
 To : All
 Subject : Re: Perl/Unix bug? select() возвращает странные значения
 -------------------------------------------------------------------------------- 
 
 Alexey Samsonov <klum@nm.ru> wrote:
 
 > Столкнулся с загадочным поведением функции select (RBITS, WBITS, EBITS,
 > TIMEOUT)
 > при запуске Perl-скрипта на платформе Unix.
 > Ситуация следующая:
 > 1.Создаем несколько сокетов (PF_INET, SOCK_STREAM, getprotobyname('tcp')) в
 > non-blocking режиме через ioctl()
 > 2. Коннектимся к нескольким разным портам на ОДHОМ хосте
 > 3. Создаем бит-вектор на проверку готовности всех сокетов на запись (т.е.
 > удачный коннект)
 >  и вызываем select(undef, $bit_vec_write, undef, $timeout)
 
 > И вот, если ХОТЯ БЫ ОДИH порт на на этом хосте отвечает, то select()
 > возвращает установленные биты ДЛЯ ВСЕХ СОКЕТОВ относящихся к этому хосту.
 > Под win32(perl 5.6.0) этой проблемы нет, бит записи выставляется только для
 > актуального порта. Что посоветуете?
 
 Делать еще раз connect() и смотреть errno, если EISCONN - значит готов,
 если EALREADY ждем дальше.
 
 /Mike
 --- ifmail v.2.15dev5
  * Origin: Demos online service (2:5020/400)
 
 

Вернуться к списку тем, сортированных по: возрастание даты  уменьшение даты  тема  автор 

 Тема:    Автор:    Дата:  
 Perl/Unix bug? select() возвращает странные значения   Alexey Samsonov   10 Aug 2000 18:29:46 
 Re: Perl/Unix bug? select() возвращает странные значения   Mike E. Matsnev   10 Aug 2000 20:13:31 
 Re: Perl/Unix bug? select() возвращает странные значения   Alexey Samsonov   12 Aug 2000 09:38:57 
Архивное /ru.unix/10122775050f0.html, оценка 1 из 5, голосов 10
Яндекс.Метрика
Valid HTML 4.01 Transitional