Андроид как сервер локальной сети

Андроид как сервер локальной сети

Новые темы необходимо создавать только в корневом разделе! В дальнейшем они будут обработаны модераторами.

Копировать файлы с компьютера или ноутбука (далее ПК) на мобильное устройство (далее Андроид) и обратно требуется часто и (в случае больших файлов) проще всего это делать, используя Wi-Fi.

Основное требование: Все устройства (один или несколько ПК, Андроиды) должны быть подключены к одной сети!

    Простейший способ — SHARE it
    Установите на все устройства SHARE it. Программа доступна на Андроид и Windows.
    Логика интерфейса программы практически идентична на всех платформах.
    На принимающем устройстве выберите «Принять», на отправляющем «Отправить», выберите необходимые для передачи данные и выберите устройство, на которое данные необходимо передать.

Получаем доступ с Андроида к файлам на ПК.
Для этого потребуется установить на Андроид файл-менеджер с поддержкой SMB (Samba). Я пользуюсь ES File Explorer, альтернативы: ASTRO File Manager с плагином Astro SMB Module, eFile, X-plore.
В ES File Explorer все несложно. Нужно перейти на вкладку «LAN», нажать кнопку Меню>Создать>Сканировать. После этого программа проверит весь диапазон IP-адресов и отобразит адреса компьютеров, имеющих папки с общим доступом. Также можно не сканировать сеть, а добавить сервер вручную, указав его IP, и, при необходимости, имя пользователя и пароль.

    Samba-сервер
    Для примера используем Samba Server for Android, он позволяет работать с SD-картой коммуникатора, как с расшаренной папкой ПК. Для работы программы требуются root-права.
    Устанавливаем и запускаем программу. При первом запуске будет выдана краткая инструкция по использованию. Первый шаг — задать пароль для доступа к ресурсам мобильного устройства. Для этого нажмите Menu>Settings>Password и введите пароль. Там же можно при желании сменить имя пользователя, а также указать рабочую группу (имя должно совпадать с именем рабочей группы в настройках ПК) и NetBIOS-имя Андроида (то, что будет отображаться в сетевом окружении на ПК). После настройки вернемся в главное окно программы и нажмем Menu>Enable. Это запустит сервер SAMBA на Андроиде.

  1. Часто проблемы с соединением ПК и Андроида вызваны блокировкой мультикаста (Block multicast) в настройках роутера. Отключите это ограничение.
  2. Для упрощения доступа можно настроить фиксированные IP-адреса для всех устройств локальной сети.[/b]
    Если ПК (ноутбук) и Андроид получают IP-адреса по DHCP от роутера, то адреса при каждом включении могут отличаться. Этого бы не хотелось, т.к. ПК с ноутбуком между собой разберутся и найдут друг друга по именам, а вот у Андроида это может не получиться, т.к. он работает с IP-адресами. Тут есть два способа:

Подключение по локальной сети — Ethernet адаптер:

DNS-суффикс этого подключения . . :
Описание . . . . . . . . . . . . : Realtek PCIe GBE Family Controller
Физический адрес. . . . . . . . . : 00-1F-D0-D4-53-2D
Dhcp включен. . . . . . . . . . . : нет
IP-адрес . . . . . . . . . . . . : 192.168.5.2
Маска подсети . . . . . . . . . . : 255.255.255.0
Основной шлюз . . . . . . . . . . : 192.168.5.1
DNS-серверы . . . . . . . . . . . : 192.168.5.1

Ребрендинг шапки любезно предоставлен Fidelich — тыц.

Сообщение отредактировал Gridzilla — 22.02.16, 11:53

skunsofob,
Имя и пароль пользователя Windows.
Т.е. можно либо вписать имя и пароль того пользователя под которым заходишь в Windows, либо создать отдельного, назвать его, например, Android.

Возможно проблема также в том, что у пользователя Windows отсутствует пароль.
Насчет Win 7 не знаю, но Win XP Pro запрещает доступ к расшаренным папкам пользователям без пароля.

Еще вариант — попробовать поставить в настройках сервера галку «Анонимный вход».

Галку Анонииный вход ставил — не помогает. А паролей у меня действительно нет как на ПК с ХР, так и на ноуте с Win7. Неужеле придется отдельного пользователя создавать под паролем? По проводам сеть делал — паролей не требовалось.

Сообщение отредактировал Бодтэк — 11.10.11, 11:11

Т.е. доступ с ПК на ноут с Win 7 есть и без пароля?
Имя пользователя Win 7 и пустой пароль в настройках ES проводника не срабатывает?

Читайте также:  Sony xperia запуск android

Проверь настройки Win7 в Панель управления -> Сети и Интернет -> Центр управления сетями и общим доступом ->Изменить дополнительные параметры общего доступа (Control Panel -> All Control Panel Items -> Network and Sharing Center-> Change advanced sharing settings), там в самом низу еще раз дополнительные параметры и указать «Отключить защиту паролем». После этого анонимный вход с Андроида должен заработать.

Как вариант — попробуй временно отключить брандмауэр в Win 7. Возможно он мешает.

Сообщение отредактировал raven6 — 09.08.11, 20:42

Логин и пароль пользователя Windows, имеющего доступ к расшаренным папкам.

Так расшарьте какую-нибудь. Без расшаренных папок на ПК вся эта затея теряет смысл.
Правда в Win XP существуют административные ресурсы — все разделы жесткого диска расшарены автоматически с именами типа C$, D$ и т.п. Для доступа к таким ресурсам нужно указать имя и пароль пользователя этого ПК с правами администратора.

Сообщение отредактировал raven6 — 17.08.11, 09:39

Так я никакой логин и пароль не использую для учетной записи (Windows 7)

Да пробовал (создавал папку и расшаривал к ней доступ), не работает все равно, брандмауэр отключал

и нажмите Enter.
После этого будет выдан список всех имеющихся учетных записей пользователей
Временно (ну или постоянно, хотя это небезопасно) отключите парольную защиту расшаренных папок.

Сообщение отредактировал raven6 — 17.08.11, 10:32

Учетная запись есть, но пароль в ней никакой не используется (если не используется что вводить?), почему запрашивается не пойму

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

Анонимный вход в настройках сервера в ES проводнике попробуйте включить.

Сообщение отредактировал raven6 — 17.08.11, 11:14

Включен анонимный вход, все равно не пускает. Пишет: неправильний пароль, возможные причины: недостаточно прав пользователя

Может есть альтернативное решение со значительно простой настройкой?)

Сообщение отредактировал DeaDia — 17.08.11, 11:06

Попробуйте другие файл-менеджеры с поддержкой сети.
Если не заработает, то включите защиту паролем для расшаренных папок и создайте пользователя (например Android) с паролем.

Сообщение отредактировал raven6 — 17.08.11, 11:17

Разобрался.
Итак, диспозиция: Win 7, статический IP, единственный пользователь, созданный при установке, у которого отсутствует пароль.
Если в Win 7 включен общий доступ с парольной защитой (по умолчанию), то ES проводник даже не сможет просмотреть список расшаренных папок, его сразу пошлют, потому что у него документов нету.
Если общий доступ с парольной защитой отключен, то список расшаренных папок в ES проводнике отображается, но доступ можно получить только к папке Users, т.к. к ней по умолчанию разрешен доступ для всех.
Вариантов — два: либо отключить парольную защиту и предоставлять права на доступ к каждой расшаренной папке пользователю гость/Guest (свойства папки>Доступ, там в списке выбрать Guest и нажать добавить), либо не отключать парольную защиту, а создать пользователя, имеющего пароль, и опять же предоставить ему права на доступ к расшаренной папке в том же диалоге. После этого имя и пароль этого пользователя требуется вводить в настройках сервера в ES Проводнике.
По умолчанию Win 7 дает доступ к расшариваемой папке только единственному нашему пользователю, у которого нет пароля, соответственно авторизоваться по сети он не может.
Если Вам не хочется выбирать пользователя при каждой загрузке, то настройте автоматический вход.

Сообщение отредактировал raven6 — 18.08.11, 22:40

Получилось получить доступ к некоторым папкам на компе с телефона. Только под пользователем «Гость» (другие имена никак не хотят восприниматься). Причем сделать общий доступ ко всему диску C:\ не получается. Только если делать для каждой папки по отдельности. Может можно как-то разрешить доступ ко всему содержимому компа более простым способом?
Также по ссылке выше сделал автоматический вход в систему, но при пробуждении опять надо пользователя выбирать тыканьем на значок. А при обычной загрузки — автоматический вход работает. Как можно Windows 7 «объяснить» что я ОДИН ЕДИНСТВЕННЫЙ пользователь компа, что других нет и не предвидеться? Чтобы не было других пользователей, кроме «Владелец (Администратор)». Удалить все другие учетные записи чтоб не мешались и все лишнее раз и навсегда.

Читайте также:  Как увеличить насыщенность экрана андроид

Сообщение отредактировал skunsofob — 19.08.11, 18:52

Источник

Как подключить Android к локальной сети LAN Windows

В этой статье — о том, как подключить ваш телефон или планшет на Android к локальной сети Windows. Даже если у вас нет никакой локальной сети, а компьютер дома всего один (но подключен к роутеру), все равно эта статья будет полезна.

Подключившись к локальной сети, вы сможете иметь доступ к сетевым папкам Windows на вашем Android устройстве. То есть, например, для того, чтобы посмотреть фильм, необязательно его будет скидывать на телефон (его можно воспроизвести прямо из сети), также облегчается и передача файлов между компьютером и мобильным устройством.

Перед подключением

Примечание: руководство применимо в том случае, когда и ваше Android устройство и компьютер подключены к одному Wi-Fi роутеру.

Прежде всего, нужно настроить на компьютере локальную сеть (даже если компьютер только один) и предоставить доступ по сети к нужным папкам, например, с видео и музыкой. О том, как это сделать, я подробно написал в предыдущей статье: Как настроить локальную сеть LAN в Windows.

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

Подключение Android к Windows LAN

В своем примере для подключения к локальной сети с Андроид я буду использовать бесплатное приложение файловый менеджер ES Проводник (ES Explorer). На мой взгляд, это лучший файловый менеджер на Android и, помимо прочего, в нем есть все необходимое для того, чтобы получить доступ к сетевым папкам (и далеко не только это, например, вы можете подключиться ко всем популярным облачным сервисам, в том числе и с разными аккаунтами).

Скачать бесплатно файловый менеджер для Android ES Проводник вы можете из магазина приложений Google Play https://play.google.com/store/apps/details?id=com.estrongs.android.pop

После установки, запустите приложение и перейдите на вкладку подключения к сети (ваше устройство при этом должно быть подключено по Wi-Fi через тот же роутер, что и компьютер с настроенной локальной сетью), переход между вкладками легко осуществляется с помощью свайпа (жест пальцем с одной стороны экрана до другой).

Далее у вас есть два варианта действий:

  1. Нажать кнопку Scan, тогда произойдет автоматический поиск компьютеров в сети (если нужный компьютер найден, можете сразу прервать поиск, иначе он может продолжаться долго).
  2. Нажать кнопку «Создать» и указать параметры вручную. При ручном указании параметров, если вы настраивали локальную сеть по моей инструкции, имя пользователя и пароль не понадобятся, зато нужен будет внутренний адрес IP компьютера в локальной сети. Лучше всего, если вы укажете на самом компьютере статический IP в подсети роутера, в противном случае при включении и выключении компьютера, он может изменяться.

После подключения, вы сразу получите доступ ко всем сетевым папкам, к которым такой доступ разрешен и сможете выполнять с ними нужные действия, например, как уже говорилось, проигрывать видео, музыку, смотреть фотографии или что-то еще на ваше усмотрение.

Как видите, подключение Android устройств к обычной локальной сети Windows — совсем не сложная задача.

Источник

Простой клиент-сервер на Android (интернет-мессенджер)

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

Поехали. Многие мобильные приложения (и не только) используют архитектуру клиент-сервер. Общая схема, думаю, понятна.

Уделим внимание каждому элементу и отметим:

  • сервер — представляет собой некую программу, работающую на удаленном компьютере, и реализующую функционал «общения» с приложениями-клиентами (слушает запросы, распознает переданные параметры и значения, корректно отвечает на них);
  • клиент — в нашем случае, программа на мобильном устройстве, которая умеет формировать понятный серверу запрос и читать полученный ответ;
  • интерфейс взаимодействия — некий формат и способ передачи/получения запросов/ответов обеими сторонами.
Читайте также:  Posing app для андроид

Неважно, как реализован любой из этих элементов, все они в любом случае присутствуют. Давайте реализуем примитивный сервер и Android клиент, работающий с ним. Как пример, будем использовать любой популярный мобильный интернет-мессенджер (Viber, ICQ), а приложение условно назовем «интернет-чат».

Схема взаимодействия следующая:

Клиент, установленный на устройстве А, посылает сообщение для клиента, установленного на устройстве Б. И наоборот. Сервер играет роль связующего звена между устройством А и Б… С, Д… и т.д. Также он играет роль «накопителя» сообщений, для их восстановления, на случай удаления на одном из клиентских устройств.

Для хранения сообщений используем SQL БД как на сервере, так и на устройствах-клиентах (в принципе, вся работа клиентов интернет-мессенджеров и сводится к постоянной синхронизации локальной и удаленной БД с сообщениями). Дополнительно, наш интернет-чат будет уметь стартовать вместе с запуском устройства и работать в фоне. Взаимодействие будет происходить путем HTTP запросов и JSON ответов.

Более логично, если синхронизация происходит через порт/сокет, это с одной стороны упрощает задачу (не нужно циклично слать HTTP запросы на проверку новых сообщений, достаточно проверять состояние прослушиваемого сокета), но с другой стороны, это усложняет создание серверной части приложения.

Делаем сервер

Для реализации «сервера», нам нужно зарегистрироваться на любом хостинге, который дает возможность работы с SQL и PHP.

Создаем пустую SQL БД, в ней создаем таблицу.

  1. author — автор сообщения;
  2. client — получатель сообщения;
  3. data — время и дата получения сообщения на сервере;
  4. 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. При этом наше сообщение НЕ записывается в локальную БД! Там оно появится только после получения его назад в виде ответа сервера. Такую реализацию я использовал в связи с важным нюансом работы любого интернет-чата — обязательной группировкой сообщений по времени. Если не использовать группировку по времени, будет нарушена последовательность сообщений. Учитывая, что клиентские приложения просто физически не могут быть синхронизированы с точностью до миллисекунд, а возможно будут работать даже в разных часовых поясах, логичнее всего будет использовать время сервера. Так мы и делаем.

Создавая новое сообщение, мы передаем запросом на сервер: имя автора сообщения, имя получателя сообщения, текст сообщения. Получая эту запись назад, в виде ответа сервера, мы получаем то, что отправляли + четвертый параметр: время получения сообщения сервером.

Источник

Оцените статью