-1

私はいくつかの古いコードを移植しており、この非推奨の通知を受け取っています。これを何にアップグレードすればよいですか?

warning: [deprecation] send(java.net.DatagramPacket,byte) in java.net.MulticastSocket has been deprecated
        socket.send(packet,(byte)ttl);

これは問題のコードです:

packet = new DatagramPacket(msg, msg.length, address, port);
socket.send(packet,(byte)ttl);

アップデート:

TTL の設定に問題がある場合 (つまり、パケットを見ると TTL が常に 1 である場合)、このコードを更新しても役に立ちません (ただし、非推奨の警告は消えます)。ここで説明されている Java ランタイムのバグに遭遇した可能性があります。

Java マルチキャストの Time To Live は常に 0 です

4

1 に答える 1

2

javadocs は、非推奨ステートメントhttp://docs.oracle.com/javase/6/docs/api/java/net/MulticastSocket.html#send(java.net.DatagramPacket,%20byte)で何をすべきかを正確に教えてくれます

// Deprecated. Use the following code or its equivalent instead:
int ttl = mcastSocket.getTimeToLive();
mcastSocket.setTimeToLive(newttl);
mcastSocket.send(p);
mcastSocket.setTimeToLive(ttl);
于 2013-09-05T22:12:24.547 に答える