Читаем Создание игр для мобильных телефонов полностью

Параметр «Схема» – это название сетевого протокола, например, http или datagram. Параметр «Цель» – обычно адрес в сети, но может изменяться в соответствии с особыми типами протоколов. Последний параметр – это список параметров подключения. Ниже приведены строки соединений для различных типов подключений:

HTTP – "http://www.stalefishlabs.com/"

Socket – «socket://www.stalefishlabs:1800»

Datagram – «datagram://:9000»

File – «file:/stats.txt»

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

Метод open возвращает объект типа Connection, который является базовым интерфейсом для всех интерфейсов соединений. Чтобы использовать определенный тип интерфейса соединения, необходимо преобразовать тип Connection к нужному. Следующий код иллюстрирует использование интерфейса DatagramConnection для создания датаграммного соединения:

DatagramConnection dc = (DatagramConnection)Connector.open(«datagram://:5555»);

...

Совет Разработчику

Число 5555 в примере, – это сетевой порт, используемый датаграммным подключением. Номер порта может быть любым, но больше 1024. Очень важно, чтобы клиент и сервер мидлета соединялись через один и тот же порт.

В следующих разделах мы более глубоко рассмотрим датаграммные соединения, как получать и отправлять данные.

Создание пакетов датаграммы

Чтобы использовать датаграммы для коммуникации через телефонную сеть, необходимо разделить данные на отдельные части – пакеты. Когда мобильные игры передают информацию через датаграммное соединение, они на самом деле отправляют и принимают пакеты. Датаграммные пакеты разработаны так, что они хранят массив байтов, поэтому любые данные в вашем пакете должны быть преобразованы в массив байтов. Когда вы создаете объект типа Datagram, необходимо определить число байтов, помещаемых в пакет. Ниже приведен пример создания объекта Datagram, способного хранить 64 байта информации:

Datagram dg = dc.newDatagram(64);

В этом коде объект Datagram создается вызовом метода newDatagram объекта соединения. Параметр метода newDatagram – это размер датаграммы в байтах. Такой метод хорошо подходит для приема информации в играх. Другой подход к созданию датаграммы – это создать и заполнить датаграмму в одной строке. Этот метод хорошо подходит для отправления информации, когда у вас есть данные для отправки. Многие игры для коммуникации используют сообщения, при этом каждая строка должна быть преобразована в байтовый массив перед тем, как будет сохранена в датаграмме:

String message = «GameOver» byte[] bytes = message.getBytes;

В этом коде строка «GameOver» преобразуется в массив байтов, который сохраняется в переменной bytes. Для создания датаграммы используется другой вариант метода newDatagram:

Datagram dg = dc.newDatagram(bytes, bytes.length);

В этом коде массив байтов игровых данных передается первым параметром в метод newDatagram, а его длина – вторым параметром. В ряде случаев (пакет пересылается от сервера к клиенту) необходимо использовать совершенно другой вариант метода newDatagram:

Datagram dg = dc.newDatagram(bytes, bytes.length, address);

В этом методе есть третий параметр, который содержит адрес цели – получателя датаграммного пакета. Адрес необходим только в случае, если сервер пересылает данные клиенту, при этом адрес можно получить из датаграммы клиента, для чего используется функция getAddress.

...

В копилку Игрока

В этой главе вы познакомитесь с еще более сложным методом создания датаграмм для сервера и клиента, когда будете работать над мидлетом Lighthouse.

Отправка пакетов датаграммы

Перейти на страницу:

Похожие книги

С компьютером на ты. Самое необходимое
С компьютером на ты. Самое необходимое

Рассказывается о работе в операционной системе Windows (на примере версий XP и 7), текстовом редакторе Word 2010 и других приложениях, необходимых каждому пользователю: архиваторах, антивирусах и программах для просмотра видео и прослушивания музыки (Winamp, QuickTime Pro). Большое внимание уделяется работе в Интернете. Рассказывается о программах для просмотра Web-страниц, об электронной почте, а также о различных полезных приложениях для работы в сети — менеджерах закачек файлов, ICQ, Windows Live Messenger, MSN и многих других. Во втором издании рассмотрена новая ОС — Windows 7, а также последние версии приложений для пользователей.Для начинающих пользователей ПК.

Андрей Александрович Егоров , Андрей Егоров

Зарубежная компьютерная, околокомпьютерная литература / Прочая компьютерная литература / Книги по IT
От «кирпича» до смартфона
От «кирпича» до смартфона

Перед вами уникальное исследование мира мобильной индустрии, превращенное его автором Эльдаром Муртазиным, ведущим аналитиком Mobile Research Group и главным российским специалистом по мобильным телефонам, в захватывающий бизнес-триллер. Гигантские компании — Nokia, Motorola, Samsung бросают на мобильный фронт колоссальные силы, создают альянсы, охотятся за лучшими специалистами, шпионят друг за другом. Разработки ведутся в обстановке строжайшей секретности. Цель — выпустить на рынок новую, уникальную модель раньше конкурентов или даже полностью изменить наше представление о мобильном телефоне, как это недавно удалось Apple со своим iPhone.Эта книга предназначена для тех, кто видит в мобильном телефоне не просто средство связи, а чудо инженерной мысли, смелое воплощение дизайнерских фантазий, символ нашей эпохи.

Эльдар Викторович Муртазин , Эльдар Муртазин

Справочная литература / Прочая компьютерная литература / Прочая справочная литература / Книги по IT / Словари и Энциклопедии