Russian Qt Forum

Qt => Работа с сетью => Тема начата: kuzulis от Декабрь 21, 2015, 12:54



Название: [Решено]Android, WIFI, UDP broadcast messages
Отправлено: kuzulis от Декабрь 21, 2015, 12:54
Всех с наступающим.

Никто не пробовал принимать броадкаст UDP сообщения на Android девайсе (естественно, используя QUdpSocket), в случае, если девайс подключен к сети через WiFi?

Шлю широковещалки со своего рабочего компа (под Windows 8) и ожидаю, что андройдовское приложение их примет.. - а, вот, не тут то было.

Что-то у меня не работает ничего. В манифесте стоят все пермишены, которые возможны:

Код
XML
   <uses-permission android:name="android.permission.INTERNET"/>
   <uses-permission android:name="android.permission.CHANGE_WIFI_STATE"/>
   <uses-permission android:name="android.permission.ACCESS_WIFI_STATE"/>
   <uses-permission android:name="android.permission.ACCESS_NETWORK_STATE"/>
   <uses-permission android:name="android.permission.CHANGE_NETWORK_STATE"/>
 

Никто не сталкивался с этим вопросом? Мож есть какие-то особенности?


Название: Re: Android, WIFI, UDP broadcast messages
Отправлено: navrocky от Декабрь 21, 2015, 15:07
При наличии рута и busybox на телефоне я бы глянул не занят ли уже требуемый порт:

Код:
# busybox netstat -nlup

И занимается ли он при старте твоего кутэшного приложения.

Второе, с помощью tcpdump глянуть, что пакеты приходят извне:

Код:
# tcpdump -l -i wlan0 udp

Ну а дальше искать уже ошибки в своём коде..

Насчет работоспособности QUdpSocket на андроиде ничего не могу сказать  :(


Название: Re: Android, WIFI, UDP broadcast messages
Отправлено: kuzulis от Декабрь 21, 2015, 15:28
Проблема была на хосте в винде.. по какой-то причине не пропускались исходящие UDP пакеты. Я так и не понял в чем проблема была (но не в файерволе, т.к. я его отключал и пробовал без него).. Я потыкал включил/отключил/включил сетевой адаптер, а также отключил виртуальный адаптер от виртуалбокса (может это он гадил?).. В общем теперь все нормуль, я так и не понял в чем было дело. :)

UPD: В моем случае все заработало и без всяких Android пермишенов вообще.