На этом уроке мы наконец-таки сделаем сетевую версию программы Sokoban для двоих. Мы будем использовать телефонный класс Phone с прошлого урока.
Дата отправки отчёта:
26 июня 2015 г.
Задание выполнено: за
1 час. 40 мин.
Чему научился:
Опять делегаты. Опять потоки. Для любое использование их является "+" в мою копилку. Ещё вспомнил про свойство IsBackground.
Что было сложным:
Всё было настолько сложно, насколько и интересно.:)
Комментарии:
Интересен тот факт, что когда мы запускали на прошлом уроке (когда сделали класс Phone) 2 приложения (и клиент и сервер), то тогда не было проблем с незакрывающимся вторым потоком, хотя там мы не используем свойство IsBackground.
Научился: Передавать данные по сети. Общаться из программы с консолью Трудности: Сфотографировать два компьютера) Или это я пропустил, или это сделано преподавателем намеренно - но я не увидел объяснения, как непосредственно соединить два РАЗНЫХ компьютера по сети. Во всех сетевых уроках мы работали на IP 127.0.0.1 (т.е. на localhost'е). Поэтому для разных компьютеров я придумал решение сам(скорее всего дико неоптимальное) - при инициализации сервера программа открывает консоль и посылает туда запрос "ipconfig", считывает ответ, находит строку, в которой написан IP-адрес, вытаскивает его из этой строки и вставляет в текстовое поле. Далее при нажатии на кнопку запуска игры появляется сообщение о том, какой IP-адрес нужно сообщить клиенту. Как-то так.
P.S. Не очень получилась фотография двух компьютеров.
Научился: Очень интересно исследовать, как работают классы между собой. Трудности: Так писать программу - совсем просто. Но так все соединить вместе - очень сложно.
Интересно придумано с синхронной сменой уровней! Ух! Вот это урок! Столько всего важного и интересного. Удивительно, что класс phone передает всего то по одному байтику. А наши человечки бегают уже вместе! Спасибо за замечательный курс. Все очень понравилось!