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

Код «клиент – сервер» в мидлете Lighthouse намного легче понять, если начать рассмотрение кода сервера. Все функции сервера содержатся в классе LHServer, который отвечает за ожидание датаграммного подключения клиента. Класс LHServer реализует интерфейс Runnable, что означает, что он запускается в отдельном потоке:

public class LHServer implements Runnable {

Это важно, поскольку класс запускает отдельный поток, отслеживающий соединение, и получает сообщения от клиента. Кроме сетевого соединения с клиентом, сервер также должен обмениваться информацией с холстом мидлета, который отображает маяк. Переменные класса LHServer говорят о некоторых его функциях:

private LHCanvas canvas;

private DatagramConnection dc;

private String address;

private Boolean connected;

Холст хранится внутри класса LHServer в переменной canvas. Датаграммное соединение хранится в переменной dc – объекте класса DatagramConnection. Переменная address хранит адрес клиента, чтобы пакеты датаграммы могли быть направлены непосредственно получателю. И наконец, переменная connected отслеживает текущее состояние соединения с клиентом. Конструктор класса LHServer принимает единственный параметр – объект класса LHCanvas, конструктор выполняет ряд инициализаций:

public LHServer(LHCanvas c) {

canvas = c;

connected = false;

}

Метод start также очень прост, он запускает поток:

public void start {

Thread t = new Thread(this);

t.start;

}

Метод run – это метод, в котором реализуются основные функции сервера (листинг 14.1). Листинг 14.1. Метод run класса LHServer отвечает на сообщения, принятые от клиента

public void run {

try {

// соединиться с клиентским устройством

canvas.setStatus("Waiting for peer client..."); //Первое статусное сообщение сервера говорит о том, что он ожидает клиента

dc = null;

while (dc == null)

dc = (DatagramConnection)Connector.open("datagram://:5555"); //Порты клиента и сервера должны быть одинаковыми

while (true) {

// попробовать принять пакет датаграммы

Datagram dg = dc.newDatagram(32); //Размер датаграммы (32 байта) должен быть достаточно большим, чтобы вместить наибольшее возможное сообщение, однако в игре Lighthouse сообщения не очень велики

dc.receive(dg);

address = dg.getAddress;

// проверить, что датаграмма содержит данные

if (dg.getLength > 0) {

String data = new String(dg.getData, 0, dg.getLength);

if (data.equals("Client")) { //В ответ на соединение клиента, изменяется значение переменной и отправляется ответ

// оповестить пользователя об удачном соединении

canvas.setStatus("Connected to peer client.");

connected = true;

// попробовать ответить на принятое сообщение

sendMessage("Server");

}

else {

// отправить данные

canvas.receiveMessage(data); //Сообщение должно содержать знаки азбуки Морзе, поэтому необходимо его передать холсту

}

}

}

}

catch (IOException ioe) {

System.err.println("The network port is already taken.");

}

catch (Exception e) {

}

}

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

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

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

Рассказывается о работе в операционной системе 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 / Словари и Энциклопедии