ブロードキャスト アドレス (192.168.1.255) を使用して UDP パケットを送信すると、UDP パケットを送受信できるという奇妙な問題があります。ユニキャスト アドレス (192.168.1.83) で送信すると、パケットは送信されません (Wireshark で確認しました)。
送信機能は次のとおりです。
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" />
ブロードキャストが機能していることを考えると、自分が何を間違っているのか考えられません。アイデアはありますか?