1
我有,我的腦海裏古怪,問題由此我可以發送,如果我有一個廣播地址發送他們收到UDP包(192.168.1.255) 。如果我發送一個單播地址(192.168.1.83),數據包不會被傳輸(我已經使用Wireshark進行了檢查)。單播發送UDP不工作,但廣播發送UDP確實
發送函數是:
private void sendPacket(String data) {
try {
if (mSocket.isClosed()) {
Log.e(TAG, "Socket is closed: " + data);
return;
}
Log.d(TAG, "Send: " + data + " - " + myLocalIP.toString()+ " - " + myBcastIP.toString());
DatagramPacket packet = new DatagramPacket(data.getBytes(),
data.length(), myLocalIP, BCAST_PORT);
mSocket.send(packet);
} catch (Exception e) {
Log.e(TAG, "Exception during write", e);
}
}
我manefest文件具有以下權限:
<uses-permission android:name="android.permission.INTERNET" />
<uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" />
<uses-permission android:name="android.permission.ACCESS_WIFI_STATE" />
鑑於廣播作品我不認爲我在做什麼錯。請有任何想法嗎?
回顧一段時間後,我意識到@ MP23所說的含義:在發送單播消息之前,我需要放入一個** socket.setBroadcast(false)**。 –