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

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

Реклама

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

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

Если через некоторое время функционирование удаленного хоста будет вос­становлено, он получит один из повторно переданных пакетов локального хоста. Не зная, что с ним делать, хост передаст сообщение сброса низкого уровня, в котором локальному хосту будет сообщено, что ему в соединении отказано. В этот момент соединение будет разорвано и программа получит либо сообщение EOF, либо сообщение об ошибке в зависимости от выполняемой операции.

Один из способов предотвращения блокировки на неопределенное время со­стоит в установке опции сокета SO_KEEPALIVE. В этом случае соединение раз­рывается по тайм-ауту по истечении некоторого периода ожидания ответа, и сокет закрывается. Тайм-аут поддержки соединения, установленный опцией SO_KEEPALIVE, является относительно продолжительным (в некоторых случаях он составляет несколько минут) и не может быть изменен.

Сеть прекращает работать при установленном соединении. Если маршру­тизатор или сетевой сегмент прекращает работать при установленном соеди­нении, в результате чего удаленный хост становится недостижимым, текущая операция ввода-вывода блокируется до тех пор, пока связь не будет восстанов­лена. Однако в этом случае после восстановления сети сеанс обычно продол­жается так, как будто ничего не произошло, и операция ввода-вывода заверша­ется успешно.

Однако из этого правила есть несколько исключений. Если один из маршрутизаторов, расположенный по пути следования, вместо того чтобы просто остановиться, начинает выдавать сообщения об ошибках, такие как host unreachable (хост не достижим), то соединение разрывается и возникает ситуация, аналогичная рассматриваемой в начале. Еще одно исключение состоит в том, что удаленный сер­вер имеет свою систему завершения соединений по тайм-ауту. В таком случае он устанавливает тайм-аут и закрывает соединение, как только связь по сети будет восстановлена.

Итак, сокеты TCP создаются с использованием функции socket(). В клиентской программе для установления исходящего соединения с удаленным хостом вызывается функция connect(). В серверной программе вызывается функция bind() для присвоения сокету адреса, функция listen() - для указания операционной системе, что готов принимать соединения, и функция accept() для приема входящих соединений. После подключения сокет TCP может использоваться для чтения и записи данных подобно дескриптору файла.

Сокеты имеют ряд опций, которые можно устанавливать и определять, соответственно, с помощью функций setsockopt() и getsockopt(). В отличие от дескрипторов файлов, после закрытия которых дальнейшее чтение или запись становятся невозможным, сокеты могут быть закрыты наполовину с использованием функции shutdown() - позволяющей закрыть сокет для чтения, записи.



2013-11-03 02:38:48

это интересно
Уже давно не секрет, что наша связь постепенно переходит на технологии IP-Телефонии с передачей информации по цифровым каналам, как частный случай по Интернет. И важен тот факт, что тарифы IP телефонии на порядок ниже тарифов проводной связи, а качество зачастую соизмеримо. Поэтому применение этой технологии с каждым днем все популярнее.

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


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


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


РЕКОМЕНДУЕМ

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