Личный кабинет    
Назад К началу Вперед Карта сайта Телефонные коды стран и городов Мира Анализатор тарифов Служб IP-Телефонии и Рейтинг

Разделы
Введение
Литература
Операторы
Оборудование
Анализатор
Сотрудничество
Печать карт
Новости
Опросник
Коды
Справка
Работа
Каталог
Хостинг
Личный кабинет

Реклама

Perl для IP-Телефонии (36 – Неблокирующий ввод-вывод, часть 47)

предыдущая часть ««»» следующая часть

Тайм-аут, предусмотренный для операции приема, уточненный в исходном коде http://delphiexpert.ru , применяется объектом IO::Socket во время вызова метода accept ( ). В следующем фрагменте кода создается приемный сокет с тайм-аутом 5 секунд, после чего программа входит в цикл, ожидая входящих запросов на установление соединения. В связи с наличием таймаута., метод accept () ожидает поступления входящего запроса на установление соединения не более 5 секунд и возвращает либо подключенный объект сокета, если не был создан, либо значение undef. В последнем случае в цикле выводится предупреждающее сообщение и выполняется возврат в начало цикла. В ином случае, как обычно, выполняется обработка подключенного сокета.

$sock = IO::Socket::INET->new(
    LocalPort => 8000,
    Listen      => 20,
    Reuse      => 1,
    Timeout      => 5
);
while (1) {
 my $connected = $sock->accept();
    uniess ($connected) {
        warn "timeout! ($@)n"; next;
    }
# В ином случае обработать подключенный сокет
...
}

Если выполнение метода accept () прекращается по тайм-ауту без выполнения соединения, переменная $@ содержит сообщение “IO::Socket:: INET: Operate now in progress.”.

Неблокирующее выполнение метода connect ()

В настоящем разделе описано, как реализовано завершение по тайм-ауту вызова метода connect () модуля IO::Socket. Это описание позволяет понять, как использовать неблокирующий метод connect () в более сложных приложениях.

Для выполнения неблокирующего подключения с использованием метода IO::Socket необходимо создать объект IO::Socket, не позволяя ему подключаться автоматически, перевести его в неблокирующий режим, а затем выполнить вызов метода connect () вручную.



2014-09-23 23:13:10

предыдущая часть ««»» следующая часть


ДОКУМЕНТАЦИЯ VoIP


НОВОСТИ СВЯЗИ


РЕКОМЕНДУЕМ

 
[ стандарты | обзор | оборудование | анализатор | коды | новости | карта | партнерам | Мы ВКонтаке ]
Запрещается копировать материалы сайта без уведомления авторов.
С вопросами и предложениями обращайтесь со страницы контактов
Copyright c 1999-2024 IPTop.Net
 
IP-Телефония, Интернет Телефония, Компьютерная телефония