|
|
ru.unix- RU.UNIX ---------------------------------------------------------------------- From : Alexey Samsonov 2:5020/400 10 Aug 2000 18:29:46 To : All Subject : Perl/Unix bug? select() возвращает странные значения --------------------------------------------------------------------------------
Столкнулся с загадочным поведением функции 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) этой проблемы нет, бит записи выставляется только для
актуального порта. Что посоветуете?
Спасибо,
Алексей
--- ifmail v.2.15dev5
* Origin: Demos online service (2:5020/400)
Вернуться к списку тем, сортированных по: возрастание даты уменьшение даты тема автор
Архивное /ru.unix/23178fe5c44e3.html, оценка из 5, голосов 10
|