- Как превратить смартфон на Android в веб-сервер
- Android: недорогой веб-сервер у вас в кармане
- Шаг 1: Установите Tiny Web Server для Android
- Шаг 2: Настройте Tiny Web Server
- Шаг 3: Добавьте Index.html на Tiny Web Server
- Как люди посещают страницы вашего веб-сервера Android?
- Построение веб-сервера Android
- Превращаем смартфон или планшет под управлением Android в сервер
- Простой клиент-сервер на Android (интернет-мессенджер)
- Делаем сервер
- Клиентская часть
Как превратить смартфон на Android в веб-сервер
Нужно маломощное устройство для запуска вашего сайта? Хотите освободить место, занимаемое вашим веб-сервером? Хотели бы вы поделиться информацией с людьми, друзьями или публикой, но у вас нет средств для запуска полномасштабного веб-сервера?
Или вы можете разместить свою веб-страницу, используя смартфон или планшет на Android. Вот как можно создать простой веб-сервер Android.
Android: недорогой веб-сервер у вас в кармане
Веб-сайтам не нужны дорогие серверы. Сейчас мы находимся на этапе, когда вы можете разместить на скромном устройстве динамический веб-сайт, управляемый базой данных.
Например, вы можете использовать стандартный настольный ПК или ноутбук. Но так как это занимает много места, вы можете сократить еще больше.
Это немедленно снимает ваши расходы на хостинг. Если количество просмотров страниц низкое, вы должны обнаружить, что ваш сайт работает без блокировки устройства (хотя вы не должны ожидать многозадачности во время работы сайта!).
Шаг 1: Установите Tiny Web Server для Android
Для Android доступны различные серверные приложения. Однако многие из них устарели и предназначены для более старых версий Android (таких как PAW Server).
Мы используем Tiny Web Server для этого урока. При этом мы загрузим основной файл index.html и перейдем к нему с ПК в той же сети, чтобы проиллюстрировать использование Android в качестве веб-сервера.
Подобные приложения основаны на тех же принципах. В основном, те же концепции и процессы необходимы для предоставления веб-страницы браузеру для просмотра.
Скачать: Tiny Web Server для Android (бесплатно)
Шаг 2: Настройте Tiny Web Server
Этот инструмент очень упрощенный способ подачи контента с вашего телефона. Тем не менее, он позволяет вам получить доступ к файлам удаленно. Например, вы можете просматривать память телефона из веб-браузера вашего компьютера, если оба находятся в одной сети.
Из-за этой простоты в Tiny Web Server нет возможности настройки. Это означает, что вы не можете принудительно установить его по умолчанию в файл index.html.
После установки Tiny Web Server запустите приложение. На главном экране у вас есть опция Изменить путь к серверу, что полезно, если вы хотите указать каталог для хранения ваших веб-файлов.
Вы также можете указать кодировку по умолчанию (полезно, если у вас нет сайта на английском языке) или порт сервера.
Шаг 3: Добавьте Index.html на Tiny Web Server
Чтобы использовать Tiny Web Server для обслуживания веб-страниц, вам нужно создать файл index.html и загрузить его в нужную папку. Вы можете сделать это на своем рабочем столе, используя текстовый редактор, например Notepad ++, или на Android, используя HTML или текстовый редактор.
Скопируйте файл в нужный каталог (через USB или с помощью файлового менеджера Android) на устройстве Android. На Android переместите файл в /storage/emulated/0.
Если вы копируете файл через USB на телефон, перейдите к хранилищу телефона в диспетчере файлов. Местоположением по умолчанию должен быть эмулируемый подкаталог. Скопируйте файл HTML в этот каталог, затем безопасно отключите устройство.
После того, как файл скопирован на Android, откройте Tiny Web Server и нажмите «Запустить сервер». Перейдите в своем браузере к URL-адресу по умолчанию, добавив /index.html в конец.
Поздравляем, вы превратили свое Android-устройство в простой веб-сервер! Конечно, показанный пример является чрезвычайно простым и не имеет стиля. К счастью, легко добавить CSS с помощью обычной инструкции в файле HTML. Мы рассмотрели некоторые основы CSS если вы новичок. Лучше всего, вы все еще можете использовать свой телефон или планшет в обычном режиме во время хостинга сайта.
Как люди посещают страницы вашего веб-сервера Android?
Не имеет значения, размещаете ли вы свой сайт на смартфоне, планшете или даже на Android-телевизоре.
Какое бы устройство Android вы не выбрали, при использовании вместе с клиентом динамического обновления DNS (из них No-IP.com имеет приложение для Android), вы сможете обслуживать веб-страницы на компьютерах вне домашней или корпоративной сети. Эти приложения связывают динамический IP-адрес вашего устройства с выделенным URL-адресом через устанавливаемое клиентское приложение.
Как люди посещают страницы вашего веб-сервера Android?
Не имеет значения, размещаете ли вы свой сайт на смартфоне, планшете или даже на Android-телевизоре.
Какое бы устройство Android вы не выбрали, при использовании вместе с клиентом динамического обновления DNS (из них No-IP.com имеет приложение для Android), вы сможете обслуживать веб-страницы на компьютерах вне домашней или корпоративной сети. Эти приложения связывают динамический IP-адрес вашего устройства с выделенным URL-адресом через устанавливаемое клиентское приложение.
Построение веб-сервера Android
Мы рассмотрели основные этапы создания веб-сервера на платформе Android. На случай, если вы их пропустили, давайте напомним себе.
- Убедитесь, что ваше Android-устройство подключено к сети
- Установите Tiny Web Server
- Создать HTML-файл (ы)
- Загрузите файл (ы) на ваше устройство Android
- Запустите Tiny Web Server
Если веб-сайт относительно простой, вы можете использовать свое Android-устройство в качестве хоста и сэкономить деньги на питании дорогого сервера. Точно так же вы можете повторно использовать пространство, используемое сервером или ПК, работающим в качестве веб-сервера. Возможно, вы можете использовать сервер для других целей.
В Android создание веб-сервера — это всего лишь один из вариантов. Взгляните на некоторые более полезные способы использования старого смартфона.
Источник
Превращаем смартфон или планшет под управлением Android в сервер
16 октября 2013
Новые модели смартфонов и планшетов, а также версии операционной системы Android сменяют друг друга так быстро, что у многих любителей электронных гаджетов скопилась приличная коллекция вполне работоспособных и полностью исправных аппаратов, которые, к сожалению, уже морально устарели. Конечно, их можно по дешёвке продать или подарить, но есть и другое решение, способное дать всем этим устройствам вторую жизнь. Их все можно превратить в серверы различного назначения — да-да, в серверы!
Не удивляйтесь, ведь по производительности практически любые смартфоны и планшеты на базе операционной системы Android могут легко поспорить с самыми настоящими «взрослыми» серверами всего лишь десятилетней давности. Единственное условие — вы должны обладать правами администратора, то есть «сделать root» на таком устройстве. Существуют различные программы для получения прав root, к тому же процедуры для разных аппаратов могут различаться, поэтому рекомендуем поискать информацию по вашей конкретной модели в интернете.
В какой же именно сервер можно превратить смартфон или планшет? Практически в любой, но проще всего на базе операционной системы Android организовать серверы трёх типов: веб-сервер, файловый или FTP-сервер и медиасервер.
Веб-сервер — это то, куда вы зашли, открыв эту страницу — как и любую другую страницу в интернете. Для создания веб-сервера, работающего по протоколу HTTP, требуется минимум вычислительной мощности, так что для этого подойдёт даже весьма старый смартфон или планшет. Вы можете организовать как полноценный веб-сервер, доступный через интернет, так и просто локальный HTTP-сервер, видимый только в домашней сети и предназначенный, к примеру, для отладки работы сайтов перед размещением их на профессиональном хостинге. При этом, несмотря на низкие аппаратные требования, для правильной настройки веб-сервера требуются некоторые специальные знания, поэтому для неподготовленного пользователя это может оказаться весьма непростой задачей.
Файловый сервер — это хранилище файлов, доступное в сети посредством, как правило, протокола FTP. Самый простой в настройке сервер, который можно организовать на устройстве под управлением Android: все его функции заключаются в создании папок, в которые можно записывать файлы и из которых эти файлы можно считывать. Проблема, однако, в другом: обычно у смартфонов и планшетов не слишком много встроенной памяти, поэтому для создания полноценного файлового сервера придётся использовать флеш-карты или, что намного лучше, внешние накопители.
Медиасервер — наверное, самый полезный и интересный тип сервера, в который можно превратить устройство на основе Android. Такой сервер обеспечит потоковую трансляцию звука и видео на домашнюю аудиовидеосистему, компьютер, игровую приставку или другие планшеты и смартфтоны. Это более функциональный, но и более сложный вариант файлового сервера, который может использовать множество различных протоколов (например, DLNA) для соединения и передачи файлов.
Любой правильно настроенный сервер получит локальный IP-адрес, но у всей вашей сети, выходящей в интернет, будет единый внешний IP-адрес. Если вы планируете использовать сервер только в пределах домашней сети, то для подключения к нему потребуется знание локального IP-адреса. Кроме того, для правильной работы серверов может понадобиться переназначение портов (port forwarding) на вашем домашнем роутере: такое перенаправление позволит всем устройствам в сети «видеть» порт, через который работает сервер.
Если вы хотите использовать Android-сервер не только в рамках локальной сети, но и за её пределами, вам придётся воспользоваться услугой динамического DNS либо оплатить статический IP-адрес и обзавестись доменным именем. Это отдельная большая тема, и мы не будем её затрагивать здесь, тем более что в интернете можно найти множество подробных инструкций и советов по работе с этими сервисами.
Для создания сервера на базе устройства под управлением Android можно воспользоваться специализированными программами, которые, как обычно, загружаются с Google Play. Некоторые из них бесплатные, некоторые платные; мы же посоветовали бы прежде всего обратить внимание на три из них: Servers Ultimate, My FTP Server и Pixel Media Server.
Servers Ultimate — это, пожалуй, наиболее универсальная и гибкая программа по настройке серверов в Android: она может похвастаться встроенной поддержкой более 60 типов серверов и более 70 сетевых протоколов, причём отдельно предлагаются пакеты расширения с дополнительными категориями серверов. Бесплатная пробная версия позволяет создать два сервера, которые проработают в течение 14 дней, а полная версия Servers Ultimate Pro обойдётся примерно в 200 рублей.
В зависимости от ваших целей Servers Ultimate может предложить исчерпывающий набор возможностей — от HTTP/веб-серверов и FTP/файловых серверов до медиасерверов с поддержкой DLNA, причём для каждого сервера предлагается масса специфических настроек. Для запуска нужного типа сервера следует просто выбрать его в списке и щёлкнуть по иконке, а затем вы сможете приступить к тонкому конфигурированию.
Приложение может похвастаться встроенными MySQL- PHP- и NAS-серверами, оно обеспечивает шифрование настроек, автоматический запуск и остановку по команде через СМС и Wi-Fi.
Как очевидно из названия, My FTP Server — это простой в настройке бесплатный файловый сервер для устройств под управлением Android. Все настройки предельно просты и понятны: чтобы запустить файловый сервер, нужно задать имя пользователя и пароль, выбрать директорию по умолчанию — и всё: можно подключаться к нему через любой FTP-клиент, чтобы добавлять и удалять файлы.
Приложение My FTP Server хорошо подходит для записи и чтения файлов с устройства под управлением Android, причём оно может автоматически запускаться при загрузке гаджета. Доступ к файлам может быть дополнительно ограничен только определёнными беспроводными сетями. Системные требования My FTP Server минимальны; программа работает с Android начиная с «лохматой» версии 2.2.
Программа Pixel Media Server — это простой в настройке и использовании медиасервер для смартфонов и планшетов под управлением Android, работающий с протоколами UPNP/DLNA. Сервер поддерживает массу форматов, включая аудиофайлы MP3, WAVE, FLAC, видеофайлы AVI, MP4, 3GP, MPEG, MPG, MKV, FLV, TS и MOV, а также цифровые изображения JPEG и PNG. Разработчик гарантирует совместимость Pixel Media Server со всеми сертифицированными UPNP/DLNA-устройствами, включая «умные» телевизоры, медиаплееры, игровые приставки и прочее оборудование.
Бесплатное приложение Pixel Media Server — это один из самых простых способов превратить любое устройство под управлением Android в медиасервер. Для включения сервера нужно просто запустить приложение Pixel Media Server и поменять две настройки — название устройства и папку, в которой находятся мультимедийные файлы. После этого нужно нажать кнопку Play с характерным треугольником, и сервер готов транслировать потоковый контент. Не забудьте отключить функцию перехода в спящий режим, иначе у вас возникнут проблемы со стримингом контента.
Разумеется, существует множество других приложений для создания сервера под управлением Android, но мы бы посоветовали начать именно с этих трёх: они не только максимально просты в настройке, но и заслужили множество наилучших отзывов в Google Play.
Источник
Простой клиент-сервер на Android (интернет-мессенджер)
Важно. Все написанное ниже не представляет собой какой либо ценности для профессионалов, но может служит полезным примером для начинающих Android разработчиков! В коде старался все действия комментировать и логировать.
Поехали. Многие мобильные приложения (и не только) используют архитектуру клиент-сервер. Общая схема, думаю, понятна.
Уделим внимание каждому элементу и отметим:
- сервер — представляет собой некую программу, работающую на удаленном компьютере, и реализующую функционал «общения» с приложениями-клиентами (слушает запросы, распознает переданные параметры и значения, корректно отвечает на них);
- клиент — в нашем случае, программа на мобильном устройстве, которая умеет формировать понятный серверу запрос и читать полученный ответ;
- интерфейс взаимодействия — некий формат и способ передачи/получения запросов/ответов обеими сторонами.
Неважно, как реализован любой из этих элементов, все они в любом случае присутствуют. Давайте реализуем примитивный сервер и Android клиент, работающий с ним. Как пример, будем использовать любой популярный мобильный интернет-мессенджер (Viber, ICQ), а приложение условно назовем «интернет-чат».
Схема взаимодействия следующая:
Клиент, установленный на устройстве А, посылает сообщение для клиента, установленного на устройстве Б. И наоборот. Сервер играет роль связующего звена между устройством А и Б… С, Д… и т.д. Также он играет роль «накопителя» сообщений, для их восстановления, на случай удаления на одном из клиентских устройств.
Для хранения сообщений используем SQL БД как на сервере, так и на устройствах-клиентах (в принципе, вся работа клиентов интернет-мессенджеров и сводится к постоянной синхронизации локальной и удаленной БД с сообщениями). Дополнительно, наш интернет-чат будет уметь стартовать вместе с запуском устройства и работать в фоне. Взаимодействие будет происходить путем HTTP запросов и JSON ответов.
Более логично, если синхронизация происходит через порт/сокет, это с одной стороны упрощает задачу (не нужно циклично слать HTTP запросы на проверку новых сообщений, достаточно проверять состояние прослушиваемого сокета), но с другой стороны, это усложняет создание серверной части приложения.
Делаем сервер
Для реализации «сервера», нам нужно зарегистрироваться на любом хостинге, который дает возможность работы с SQL и PHP.
Создаем пустую SQL БД, в ней создаем таблицу.
- author — автор сообщения;
- client — получатель сообщения;
- data — время и дата получения сообщения на сервере;
- text — сообщение.
В двух следующих файлах необходимо изменить переменные, содержащие данные для доступа к БД, на свои, полученные Вами при регистрации Вашего«сервера».
Структура запросов к api:
- обязательный атрибут action — может быть равен select (сервер ответит списком записей из своей БД), insert (сервер добавить новую запись в свою БД), delete (сервер очистит свою БД)
- если action=insert, нам нужно будет передать дополнительные параметры: author (кто написал сообщение), client (кому адресовано сообщение), text (сообщение)
- action=select может содержать дополнительный параметр data, в этом случае ответ сервера содержит не все сообщения из БД, а только те, у которых время создания позднее переданного
Примеры:
- chat.php?action=delete – удалит все записи на сервере
- chat.php?action=insert&author=Jon&client=Smith&text=Hello — добавит на сервере новую запись: автор Jon, получатель Smith, содержание Hello
- chat.php?action=select&data=151351333 — вернет все записи, полученные после переданного времени в long формате
Клиентская часть
Теперь структура Android приложения:
В фоне работает FoneService.java, который, в отдельном потоке, каждые 15 секунд делает запрос на сервер. Если ответ сервера содержит новые сообщения, FoneService.java записывает их в локальную БД и отправляет сообщение ChatActivity.java о необходимости обновить ListView, с сообщениями. ChatActivity.java (если она в этот момент открыта) получает сообщение и обновляет содержимое ListView из локальной БД.
Отправка нового сообщения из ChatActivity.java происходит сразу на сервер, минуя FoneService.java. При этом наше сообщение НЕ записывается в локальную БД! Там оно появится только после получения его назад в виде ответа сервера. Такую реализацию я использовал в связи с важным нюансом работы любого интернет-чата — обязательной группировкой сообщений по времени. Если не использовать группировку по времени, будет нарушена последовательность сообщений. Учитывая, что клиентские приложения просто физически не могут быть синхронизированы с точностью до миллисекунд, а возможно будут работать даже в разных часовых поясах, логичнее всего будет использовать время сервера. Так мы и делаем.
Создавая новое сообщение, мы передаем запросом на сервер: имя автора сообщения, имя получателя сообщения, текст сообщения. Получая эту запись назад, в виде ответа сервера, мы получаем то, что отправляли + четвертый параметр: время получения сообщения сервером.
Источник