Целью следующего кода является отправка пакета датаграммы через WiFi из приложения Android в TI CC3200 Launchpad. В настоящее время у меня возникает проблема при установлении соединения с Launchpad. Я попытался протестировать процедуру с помощью ноутбука и приложения, но мой Wireshark не отображает никаких пакетов. Любые предложения, почему мой код не работает по назначению?Проблемы с подключением Java DatagramSocket через WiFi
BR
EDIT1:
IP-являются правильными. Я получаю: bind failed: EINVAL (Недопустимый аргумент).
Manifest:
<uses-permission android:name="android.permission.ACCESS_NETWORK_STATE"></uses-permission>
<uses-permission android:name="android.permission.CHANGE_NETWORK_STATE"></uses-permission>
<uses-permission android:name="android.permission.ACCESS_WIFI_STATE"></uses-permission>
<uses-permission android:name="android.permission.CHANGE_WIFI_STATE"></uses-permission>
<uses-permission android:name="android.permission.INTERNET"></uses-permission>
<uses-feature android:name="android.hardware.wifi.direct"/>
EDIT2:
StackTrace:
. . .
I/AudioPolicyManager (287): getAudioPolicyConfig: audioParam; outDevice
В/AudioPolicyManager (287): getNewOutputDevice() выбранное устройство 0
В/AudioPolicyManager (287): ### curdevice: 2
I/AudioPolicyManager (287): getAudioPolicyConfig: audioParam; outDevice
В/AudioPolicyManager (287): getNewOutputDevice() выбранное устройство 0
V/AudioPolicyManager (287): ### curdevice: 2
D/CustomFrequencyManagerService (751): releaseDVFSLockLocked: Получение списка блокировок типа FRM: частоты DVFS_MIN_LIMIT: 2457600 UID: 1000 PID: 751 теги: ROTATION_BOOSTER @ 32
I/AudioPolicyManager (287): getAudioPolicyConfig: audioParam; outDevice
В/AudioPolicyManager (287): getNewOutputDevice() выбранное устройство 0
В/AudioPolicyManager (287): ### curdevice: 2
I/AudioPolicyManager (287): getAudioPolicyConfig: audioParam; outDevice
В/AudioPolicyManager (287): getNewOutputDevice() выбранное устройство 0
В/AudioPolicyManager (287): ### curdevice: 2
I/AudioPolicyManager (287): getAudioPolicyConfig: audioParam; outDevice
В/AudioPolicyManager (287): getNewOutputDevice() выбранное устройство 0
В/AudioPolicyManager (287): ### curdevice: 2
I/AudioPolicyManager (287): getAudioPolicyConfig: audioParam; outDevice
В/AudioPolicyManager (287): getNewOutputDevice() выбранное устройство 0
В/AudioPolicyManager (287): ### curdevice: 2
Д/StatusBar.NetworkController (1036): refreshViews подключены = {} WiFi уровень = 3 combinedSignalIconId = 0x7f020495/com.android.systemui: вытяжка/stat_sys_wifi_signal_4 mobileLabel = bob wifiLabel = "Kugelfahrzeug" xxxxXXXXxxxxXXXX emergencyOnly = false объединенныйLabel = "Kugelfahrzeug" xxxxXXXXxxxx ХХХЕ mAirplaneMode = ложно mDataActivity = 0 mPhoneSignalIconId = 0x7f020415/com.android.systemui: вытяжка/stat_sys_signal_3_auto_rotate mQSPhoneSignalIconId = 0x7f020113/com.android.systemui: вытяжка/ic_qs_signal_3 mDataDirectionIconId = 0x0/(нуль) mDataSignalIconId = 0x7f020415/com.android.systemui: вытяжка/stat_sys_signal_3_auto_rotate mDataTypeIconId = 0x7f0202ac/com.android.systemui: вытяжка/stat_sys_data_connected_3g mQSDataTypeIconId = 0x7f020114/com.android.systemui: вытяжка/ic_qs_signal_3g mNoSimIconId = 0x0/(нуль) mWifiIconId = 0x7f020495/com.android.systemui: вытяжка/stat_sys_wifi_signal_4 mQSWifiIconId = 0x7f02012b/com.android.systemui: вытяжка/ic_qs_wifi_4 mWifiActivityIconId = 0x7f020468/com.android.systemui: вытяжка/stat_sys_signal_no_inout mBluetoothTetherIconId = 0x1080907/Android: вытяжка/stat_sys_tether_bluetooth
Д/StatusBar.NetworkController (1036): refreshSignalCluster - setNWBoosterIndicators (ложь)
Д/StatusBar.NetworkController (1036): applyOpen
I/AudioPolicyManager (287): getAudioPolicyConfig: audioParam; outDevice
В/AudioPolicyManager (287): getNewOutputDevice() выбранное устройство 0
В/AudioPolicyManager (287): ### curdevice: 2
Д/StatusBar.NetworkController (+1036): refreshSignalCluster - setNWBoosterIndica TORs (ложный)
Д/StatusBar.NetworkController (1036): applyOpen
Д/StatusBar.NetworkController (1036): refreshSignalCluster - setNWBoosterIndicators (ложный)
Д/StatusBar.NetworkController (1036): applyOpen
Д/StatusBar.NetworkController (1036): refreshSignalCluster - setNWBoosterIndicators (ложь)
Д/StatusBar.NetworkController (1036): applyOpen
Д/TaskPersister (751): removeObsoleteFile: удаление файла = 24_task.xml
Д/TaskPersister (751): removeObsoleteFile: удаление файла = 24_task_thumbnail.png
I/AudioPolicyManager (287): getAudioPolicyConfig: audioParam; outDevice
В/AudioPolicyManager (287): getNewOutputDevice() выбранное устройство 0
В/AudioPolicyManager (287): ### curdevice: 2
I/art (751): Явная параллельная развертка метки GC освобождена 17486 (1092 КБ) Объекты AllocSpace, объекты (LOS), 5 (1360 КБ), 25% бесплатно, 45 МБ/61 МБ, приостановлено 1,720 м. Всего 181.936ms
I/AudioPolicyManager (287): getAudioPolicyConfig: audioParam; outDevice
В/AudioPolicyManager (287): getNewOutputDevice() выбранное устройство 0
В/AudioPolicyManager (287): ### curdevice: 2
I/AudioPolicyManager (287): getAudioPolicyConfig: audioParam; outDevice
В/AudioPolicyManager (287): getNewOutputDevice() выбранное устройство 0
В/AudioPolicyManager (287): ### curdevice: 2
I/AudioPolicyManager (287): getAudioPolicyConfig: audioParam; outDevice
В/AudioPolicyManager (287): getNewOutputDevice() выбранное устройство 0
В/AudioPolicyManager (287): ### curdevice: 2
I/AudioPolicyManager (287): getAudioPolicyConfig: audioParam; outDevice
В/AudioPolicyManager (287): г etNewOutputDevice() выбранное устройство 0
В/AudioPolicyManager (287): ### curdevice: 2
I/AudioPolicyManager (287): getAudioPolicyConfig: audioParam; outDevice
В/AudioPolicyManager (287): getNewOutputDevice() выбранное устройство 0
В/AudioPolicyManager (287): ### curdevice: 2
I/AudioPolicyManager (287): getAudioPolicyConfig: audioParam; outDevice
В/AudioPolicyManager (287): getNewOutputDevice() выбранное устройство 0
В/AudioPolicyManager (287): ### curdevice: 2
I/AudioPolicyManager (287): getAudioPolicyConfig: audioParam; outDevice
В/AudioPolicyManager (287): getNewOutputDevice() выбранное устройство 0
В/AudioPolicyManager (287): ### curdevice: 2
I/WifiStateMachine (75 1): CMD_RSSI_POLL: calculateWifiScore в!
I/AudioPolicyManager (287): getAudioPolicyConfig: audioParam; outDevice
В/AudioPolicyManager (287): getNewOutputDevice() выбранное устройство 0
В/AudioPolicyManager (287): ### curdevice: 2
I/WifiStateMachine (751): CMD_RSSI_POLL: calculateWifiScore out!
I/WifiStateMachine (751): CMD_RSSI_POLL: выход!
EDIT3:
Проблема была расположена на сетевом вызове в основной (фиксированный с
new Thread(new Runnable()
{
@Override
public void run()
{
(Code below)
}
});
)
App теперь работает отлично!
Код:
public void runJavaSocket() throws IOException
{
try
{
DSocket = new DatagramSocket(null);
DSocket.bind(new InetSocketAddress("192.168.173.2", 4242));
DSocket.connect(new InetSocketAddress("192.168.173.1", 4242));
String send_x = Float.toString(round_x);
byte[] buffer = send_x.getBytes();
byte [] IP = {(byte) 192,(byte) 168,(byte) 173, (byte) 1};
InetAddress address = InetAddress.getByAddress(IP);
int serverSocket = 4242;
DatagramPacket packet = new DatagramPacket(buffer, buffer.length, address, serverSocket);
DSocket.send(packet);
DSocket.close();
}
catch (Exception e)
{
DSocket.close();
}
}
вы не ловила каких-либо исключений ? вы просто едите его. Я предполагаю, что DSocket - это переменная класса? когда вы подключаетесь к DatagramSocket, вам не нужно указывать адрес и порт в пакете - он будет делать это автоматически. Распечатайте исключение, которое вы не проверяете и не сообщаете нам, что он говорит. Кроме того, вы уверены, что это IP-адреса вашего компьютера? где находится код конца прослушивания? ** Вы добавили разрешение INTERNET в манифест андроида? ** – WalterM
Я обновляю вопрос с большим количеством данных о проблеме. – Peritisch
Я считаю, что это проблема. удивленный, я пропустил это в первый раз. 'new DatagramSocket (новый InetSocketAddress (« 192.168.173.2 », 4242));' когда вы вызываете bind без аргументов, он автоматически привязывается к порту по умолчанию. Я считаю, что вы также можете вызвать 'new DatagramSocket (null);', чтобы сказать, чтобы он не связывался. – WalterM