Строки 14-18. Закрытие сокета. Метод close() закрывает сокет и удаляет объект ChatObjects: :Comm из хеша %SERVERS.
Проведем анализ следующей программы.
Строка 8. Определение константы alive_interval. Определена константе alive_interval, которая обозначает периодичность выдачи сообщений о событиях still__here. Этот интервал должен быть меньше по сравнению с периодичностью проверки сервером наличия неактивных клиентов. Для константы alive_interval выбрано значение 30 с, а для продолжительности таймаута сервера — 120 с; это значит, что клиент должен - четыре раза подряд пропустить отправку сообщения о событии still_Here, и только после этого сервер примет предположение, что клиент прекратил свое существование.
Строка 38. Создание таймера для событий still_here. Глобальная переменная $last_alive содержит значение времени последней отправки сообщения о событии still_here. Она применяется для определения времени выдачи следующего сообщения.
1. С использованием протокола TCP. Принимать входящие запросы на установление соединения от клиентов, которые желают подписаться на эту службу, и создавать для каждого из них подключенный сокет. Вызывать функции syswrite () в каждом сокете каждый раз, когда возникает необходимость отправить информацию.
2. С использованием протокола UDP. Принимать входящие сообщения от клиента и добавлять IP-адрес и номер порта каждого клиента к списку абонентов. При возникновении события, требующего отправки информации, перебирать в цикле адреса назначения клиентов и вызывать функцию send () с сокетом так же, как и в сценарии сервера системы интерактивной переписки, описан ранее.
Оба решения известны под названием “одноадресная рассылка”, поскольку каждое передаваемое сообщение адресовано одному получателю. Для рассылки одинаковых сообщений.
2. Установка опции SO_BROADCAST сокета. Проектировщики API-интерфейса сокетов решили ввести некоторую защиту от непреднамеренной рассылки в программах по широковещательному адресу, поэтому предусмотрели такое требование, что перед использованием сокета для широковещательной рассылки опция сокета SO BROADCAST должна быть установлена равной истинному значению.
2016-03-17 22:53:26
это интересно Мир виртуальной реальность с каждым годом разрастается и уже насчитывает миллионы приложений на любой вкус и цвет. К примеру на сайте fungun.net можно сделать ставки ксго, поиграть и скоротать свой досуг. Но главное чтобы для Вас виртуальная реальность не превратилась в реальный мир.