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

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

Реклама

Perl для IP-Телефонии (21 – Протокол TCP, часть 16)

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

Опция SO_TYPE предназначена только для чтения. Она возвращает тип сокета, такой как SOCK_STREAM. Это значение должно быть распаковано с помощью формата “I” перед использованием. 

И опция SO_ERR0R, предназначенная только для чтения, возвращает код ошибки возникшей во время последней операции с сокетом. Эта опция применяется для некоторых асинхронных операций, таких как неблокирующее подключение. Значение ошибки после его считывания очищается.

Опция сокета SO_REUSADDR. Во многих серверных приложениях должен быть активизирован флажок SO_REUSADDR. С помощью этого флажка можно повторно привязать к серверной программе адрес, который уже находится в использовании, что позволяет немедлен­но выполнить перезапуск сервера после его аварии или уничтожения. Без этой опции вызов функции bind() заканчивался бы неудачей до тех пор, пока все старые соединения не закроются по тайм-ауту; такой процесс может занять несколько минут. Для решения этой проблемы может быть вставлена следующая строка кода после вызова функции socket() и перед вызовом функции bind()

setsockopt: (SOCK, SOL_SOCKET, SO_REUSADDR, 1) or die "setsockopt: $!

Недостатком установки опции SO_REUSADDR является то, что она позволяет запустить сервер дважды. Оба процесса смогут выполнить привязку к одному и тому же адресу без активизации какой-либо ошибки, а затем будут конкурировать за входящие соединения, что может привести к нежелательным результатам. В серверах, которые будут разрабатываться позже, такая возможность исключается путем создания файла при запуске программы и удаления его перед завершением работы, Запуск сервера не выполняется, если обнаруживается, что такой файл уже существует. Операционная система не позволяет связывать с пользовательским процессом адрес сокета, уже связанного с другим пользовательским процессом, независимо от установки опции SO_REUSAPDR.



2013-11-03 02:04:45

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


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


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


РЕКОМЕНДУЕМ

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