Я пишу приложение для Android, в котором мне нужно общаться с компьютером по сети Wi-Fi. Весь код написан на Java, а сеть Wi-Fi представляет собой одноранговую сеть. Чтобы подключиться, я начинаю с отправки запроса широковещательного имени NBNS для машины, к которой я хочу подключиться, со своего телефона. В большинстве случаев это работает так, как ожидалось (примерно в 3 или 4 случаях из 5). Однако иногда запрос имени не удается. В любом случае, когда я отправляю запрос имени, сразу после того, как я вижу пакеты запроса имени на компьютере, к которому пытаюсь подключиться (с помощью Wireshark), я вижу, что запрос ARP выглядит так...
HonHaiPr_69:a0:67 Трансляция ARP 42 У кого есть 192.168.1.2? Скажите 192.168.1.10
Это карта с компьютера, к которому я пытаюсь подключиться, и спрашиваю, у кого есть адрес моего телефона. В случае успеха мой телефон послушно отвечает ответом ARP...
SamsungE_75:46:bb HonHaiPr_69:a0:67 ARP 42 192.168.1.2 находится в 98:0c: 82:75:46:bb
Как только мой телефон ответит на запрос ARP, я смогу продолжить и общаться с компьютером. Однако запрос имени завершается неудачей, когда мой телефон игнорирует эти ARP-запросы. Я никогда не вижу ответа ARP, и время ожидания запроса NBT, который я отправил, истекает. Я пробовал все доступные мне формы инициализации датаграмм/сокетов в стандартных Java-пакетах, и ничего не помогло. Я исследовал возможность написания собственных пакетов ответов ARP, но из-за того, где в стеке находится ARP, мне нужен доступ к возможностям программирования необработанных сокетов, а это означает, что мне нужно рутировать свой телефон. Для меня это неприемлемое решение, потому что я хочу, чтобы средний пользователь Android мог использовать это приложение, не делая ничего особенного со своим телефоном или сетью Wi-Fi. Если кто-нибудь из вас уже сталкивался с этой проблемой и решил ее, не могли бы вы сообщить мне волшебную формулу? Заранее благодарим за любой вклад, который вы можете предложить.
Подробнее здесь: https://stackoverflow.com/questions/189 ... rp-queries
Устройство Android игнорирует запросы ARP ⇐ JAVA
Программисты JAVA общаются здесь
1732058598
Anonymous
Я пишу приложение для Android, в котором мне нужно общаться с компьютером по сети Wi-Fi. Весь код написан на Java, а сеть Wi-Fi представляет собой одноранговую сеть. Чтобы подключиться, я начинаю с отправки запроса широковещательного имени NBNS для машины, к которой я хочу подключиться, со своего телефона. В большинстве случаев это работает так, как ожидалось (примерно в 3 или 4 случаях из 5). Однако иногда запрос имени не удается. В любом случае, когда я отправляю запрос имени, сразу после того, как я вижу пакеты запроса имени на компьютере, к которому пытаюсь подключиться (с помощью Wireshark), я вижу, что запрос ARP выглядит так...
HonHaiPr_69:a0:67 Трансляция ARP 42 У кого есть 192.168.1.2? Скажите 192.168.1.10
Это карта с компьютера, к которому я пытаюсь подключиться, и спрашиваю, у кого есть адрес моего телефона. В случае успеха мой телефон послушно отвечает ответом ARP...
SamsungE_75:46:bb HonHaiPr_69:a0:67 ARP 42 192.168.1.2 находится в 98:0c: 82:75:46:bb
Как только мой телефон ответит на запрос ARP, я смогу продолжить и общаться с компьютером. Однако запрос имени завершается неудачей, когда мой телефон игнорирует эти ARP-запросы. Я никогда не вижу ответа ARP, и время ожидания запроса NBT, который я отправил, истекает. Я пробовал все доступные мне формы инициализации датаграмм/сокетов в стандартных Java-пакетах, и ничего не помогло. Я исследовал возможность написания собственных пакетов ответов ARP, но из-за того, где в стеке находится ARP, мне нужен доступ к возможностям программирования необработанных сокетов, а это означает, что мне нужно рутировать свой телефон. Для меня это неприемлемое решение, потому что я хочу, чтобы средний пользователь Android мог использовать это приложение, не делая ничего особенного со своим телефоном или сетью Wi-Fi. Если кто-нибудь из вас уже сталкивался с этой проблемой и решил ее, не могли бы вы сообщить мне волшебную формулу? Заранее благодарим за любой вклад, который вы можете предложить.
Подробнее здесь: [url]https://stackoverflow.com/questions/18939300/android-device-is-ignoring-arp-queries[/url]
Ответить
1 сообщение
• Страница 1 из 1
Перейти
- Кемерово-IT
- ↳ Javascript
- ↳ C#
- ↳ JAVA
- ↳ Elasticsearch aggregation
- ↳ Python
- ↳ Php
- ↳ Android
- ↳ Html
- ↳ Jquery
- ↳ C++
- ↳ IOS
- ↳ CSS
- ↳ Excel
- ↳ Linux
- ↳ Apache
- ↳ MySql
- Детский мир
- Для души
- ↳ Музыкальные инструменты даром
- ↳ Печатная продукция даром
- Внешняя красота и здоровье
- ↳ Одежда и обувь для взрослых даром
- ↳ Товары для здоровья
- ↳ Физкультура и спорт
- Техника - даром!
- ↳ Автомобилистам
- ↳ Компьютерная техника
- ↳ Плиты: газовые и электрические
- ↳ Холодильники
- ↳ Стиральные машины
- ↳ Телевизоры
- ↳ Телефоны, смартфоны, плашеты
- ↳ Швейные машинки
- ↳ Прочая электроника и техника
- ↳ Фототехника
- Ремонт и интерьер
- ↳ Стройматериалы, инструмент
- ↳ Мебель и предметы интерьера даром
- ↳ Cантехника
- Другие темы
- ↳ Разное даром
- ↳ Давай меняться!
- ↳ Отдам\возьму за копеечку
- ↳ Работа и подработка в Кемерове
- ↳ Давай с тобой поговорим...
Мобильная версия