Компьютерные книги
Главное меню
Главная Поиск по сайту Добавить материал О нас Карта книг Карта сайта
Реклама
computersbooks.net -> Добавить материал -> Графика -> Гончаров Д. -> "DirectX 7.0 Для программистов" -> 156

DirectX 7.0 Для программистов - Гончаров Д.

Гончаров Д., Салихо Т. DirectX 7.0 Для программистов — Спб.: Питер, 2001. — 528 c.
ISBN 5-318-00173-4
Скачать (прямая ссылка): dirext7dlyaprogrammistov2001.djvu
Предыдущая << 1 .. 150 151 152 153 154 155 < 156 > 157 158 159 160 161 162 .. 229 >> Следующая

Для поддержки игры по сети в библиотеку DirectX был включен компонент Di-rectPlay. Он предоставляет интерфейсы для сетевых соединений и возможности ведения игры по сети, освобождая разработчика от трудностей, которые возникают при создании сетевой игры. В этом уроке мы рассмотрим принципы построения игры с одноранговым соединением и создадим приложение, предоставляющее возможность общения по сети.
Прежде чем приступить к рассмотрению следующего материала, убедитесь, что вы знаете хотя бы основы работы сетей. Если же вы новичок в сетевых технологиях, мы рекомендуем изучить принципы их работы, иначе материал следующих двух уроков будет вами не понят или освоен не до конца.
Одноранговые соединения
При одноранговых соединениях отсутствует как таковой сервер, хотя один из компьютеров объявляется как сервер имен. Он занимается тем, что отвечает за перечисление запросов, рассылает информацию о состоянии других игроков только что подсоединившимся компьютерам, генерирует уникальные идентификационные номера для игроков или групп игроков. Сервер имен не выступает в роли обычного сервера и не управляет сообщениями, которые игроки посылают друг другу.
Соединение посредством сервера
361
Каждый компьютер, чтобы присоединиться к сеансу, должен послать соответствующий запрос серверу имен. При ответе компьютеру, сделавшему запрос, сервер имен посылает статус сеанса.
DirectPlay не предоставляет каких-либо возможностей для выбора сервера имен. Компьютер, выбранный в качестве сервера имен, становится сервером сеанса. Только он может изменять данные о состоянии сеанса. При этом сетевой адрес сервера имен становится сетевым адресом сеанса. Если компьютер, являющийся сервером имен, по какой-либо причине покидает сеанс, в этом качестве может быть выбран любой другой компьютер. Когда происходит смена сервера имен, автоматически изменяется сетевой адрес сеанса.
Любой компьютер, присоединенный к сеансу, может получить информацию от сервера имен о его состоянии, отправить сообщение любому игроку или получить от него данные.
При одноранговом соединении каждое изменение статуса игрока должно рассылаться всем участникам, чтобы каждый компьютер, присоединенный к сеансу, получил его.
Количество одновременно пересылаемых данных может быть ограничено пропускной способностью сети (особенно при соединении через модем). Эти рамки, в свою очередь, накладывают ограничение на количество компьютеров, имеющих возможность присоединиться к сеансу. Выходов из этого положения два — сократить количество передаваемых данных или уменьшить частоту их передачи.
Каждое сообщение рассылается всем участникам сеанса, и все компьютеры имеют возможность получить его. Если вам необходимо отправить сообщение не всем компьютерам, а только определенному ряду машин, вы можете воспользоваться средствами, предоставляемыми сетевыми провайдерами. Рассылка сообщения нескольким определенным компьютерам называется групповой рассылкой сообщений (multicasting).
Рассылка групповых сообщений может существенно загрузить сетевой трафик. Для его снижения рекомендуется использовать, в дополнение к серверу имен, групповой сервер. Любой компьютер может отправить одно сообщение групповому серверу с указанием всех машин, которые должны его получить. Групповой сервер разошлет это сообщение указанным компьютерам.
Также групповой сервер может сократить количество пакетов в сети, если вместо широковещательной рассылки поручить ему разослать сообщение всем компьютерам текущего сеанса. Данный механизм уменьшает трафик сети, особенно при использовании модемных подключений.
Создание группового сервера в дополнение к серверу имен влияет только на рассылку групповых и широковещательных сообщений, те пакеты, которыми компьютеры обмениваются непосредственно, серверами не маршрутизируются, а следовательно, не меняется концепция построения сетевого приложения.
Соединение посредством сервера
При клиент-серверной архитектуре построения сетевого приложения один из компьютеров объявляется сервером. Этот компьютер отвечает за открытие сеан-
362
Урок 12 • Сетевые подключения
са, присоединение к нему игроков, пересылку только что подключившимся компьютерам информации о состоянии сеанса и игроков, присваивание ID-номеров игрокам и группам игроков. В дополнение к этому, все сообщения игроков пересылаются только через сервер.
Серверный компьютер должен запускать специальную версию приложения, которая будет следить за состоянием сеанса, хранить и обновлять состояния игроков, информировать участников об изменении состояний. Объект «игрок», создаваемый на сервере, зовется серверным игроком. Серверный игрок ничем не отличается от любого другого игрока, каждый клиент сеанса может обмениваться с ним сообщениями. Когда серверный игрок получает сообщение об изменении статуса, он может передать его любому другому игроку.
Клиентские компьютеры должны запускать клиентскую версию приложения. Они могут получать от сервера сообщения об изменении статуса сеанса и извещать его о смене локального статуса.
Есть две возможности создания приложений на основе сервера. Первое заключается в том, что происходит объединение однорангового подключения с подключением на основе сервера. При этом всем клиентам доступны списки игроков и групп. Каждый игрок может отправлять сообщения непосредственно другим игрокам, влиять на изменение их статуса. Открываются все возможности одноранговых соединений. Но ввиду того, что статус игроков может постоянно изменяться, то есть они могут выбывать из сеанса или присоединяться к нему, количество сообщений, отправляемых каждому игроку, может быть очень велико, в результате чего клиентские компьютеры окажутся перегружены. Данный тип приложений не может поддерживать более 16 игроков одновременно. Данное соединение не особенно отличается от однорангового, не считая того, что все сообщения проходят через сервер и их копии получает серверный игрок.
Предыдущая << 1 .. 150 151 152 153 154 155 < 156 > 157 158 159 160 161 162 .. 229 >> Следующая
Книги
Web-программирован-
ие
Аппаратное обеспечение Графика Руководство по П.О. Самоучитель Теория программирования Фотошоп Языки программирования
Новые книги
Вирт Н. "Систематическое программирование " (Теория программирования)

Эком "Microsoft Excel 2000 шаг за шагом Русская версия самоучитель " (Самоучитель)

Поляков А.Ю. "Методы и алгоритмы компьютерной графики в примерах Vizual C++" (Графика)

Баяковский Ю.М. "Графическая библиотека Open GL " (Графика)

Валиков А. "Технология " (Языки программирования)
Авторские права © 2013 ComputersBooks. Все права защищены.