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

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

Реклама

Perl для IP-Телефонии (41 – Срочные данные TCP, часть 10)

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

Например, в сервере rlogin (сокращение от remote login — дистанционная регистрация) системы UNIX это необходима для выполнения срочного запроса пользователя на уничтожение удаленного процесса, который вышел из-под контроля. Для сервера rlogin достаточно просто завершить соответствующую программу, поскольку она уже не может передать значительный объем данных на клиентский компьютер rlogin, находящийся на другом конце соединения, с которым работает пользователь. Сервер дальше должен сообщить клиенту, что необходимо проигнорировать весь вывод программы вплоть до того момента, когда пользователь нажал клавишу прерывания. Именно для этого и предназначена функция sockatmark (). 

$flag = sockatmark($socket)

Функция sockatmark(), позволяет определить местонахождение указателя срочных данных. При обычных внеочередных данных она возвращает истинное значение, если при выполнении очередной операции чтения функция sysread ( ) возвратит байт, который следует за срочными данными. В случае сокетов SO_OOBINLINE функция sockatmark() возвращает истинное значение, если очередной вызов функции sysread () вернет сами срочные данные.

При помощи данного функционала и опыта работы с сетевыми приложениями можно организовать распределенный шлюз удаленной обработки данных. К таковым может быть отнесена искусственная автоматическая накрутка лайков в инстаграме . По мимо всего прочего технология может работать не только со статичной базой, но и также динамическим контентом.

 

Напомним, что функция sysread () всегда приостанавливается в том место, где находится указатель срочных данных. Это было предусмотрено для того, чтобы в программе можно было вызвать функцию sockatmark (). Общая схема ее примене­ния показана в следующем фрагменте кода.

# Выполнять чтение до получения маркера
until (sockatmark($socket)) {
my $result = sysread($socket,$data,1024);
die "socket closed before reaching mark" unless $result;
}

При каждом проходе по циклу функция sysread () вызывается для чтения 1024 байт данных из сокета (которые в данном случае отбрасываются). Цикл завершается нормально при достижении указателя срочных данных или аварийно, если сокет за­крывается (или появляется какая-то другая ошибка) до того, как будет найден указа­тель срочных данных.

2015-01-30 11:25:57

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


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


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


РЕКОМЕНДУЕМ

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