|
ru.perl- RU.PERL ---------------------------------------------------------------------- From : Alexey Samsonov 2:5020/400 10 Aug 2000 18:29:40 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.perl/231788ef475df.html, оценка из 5, голосов 10
|