使用 InetSocketAddress 创建 DatagramPacket,缺少构造函数
Create DatagramPacket with InetSocketAddress, missing constructor
我正在尝试使用 Mutlicast 向多个客户端发送数据。
我查看了文档:https://docs.oracle.com/en/java/javase/16/docs/api/java.base/java/net/MulticastSocket.html#setNetworkInterface(java.net.NetworkInterface)
// join a Multicast group and send the group salutations
...
String msg = "Hello";
InetAddress mcastaddr = InetAddress.getByName("228.5.6.7");
InetSocketAddress group = new InetSocketAddress(mcastaddr, port);
NetworkInterface netIf = NetworkInterface.getByName("bge0");
MulticastSocket s = new MulticastSocket(6789);
s.joinGroup(group, netIf);
byte[] msgBytes = msg.getBytes(StandardCharsets.UTF_8);
DatagramPacket hi = new DatagramPacket(msgBytes, msgBytes.length,
group, 6789);
我的问题是最后一行。 class DatagramPacket 没有这样的构造函数。
这是文档中的错误还是我愚蠢?
似乎是 JavaDocs 中的一个错误。我的代码现在运行,用于本地多路广播:
// join a Multicast group and send the group salutations
...
String msg = "Hello";
InetAddress mcastaddr = InetAddress.getByName("228.5.6.7");
InetSocketAddress group = new InetSocketAddress(mcastaddr, 6789);
NetworkInterface networkInterface = NetworkInterface.getByInetAddress(InetAddress.getByName("localhost"));
MulticastSocket s = new MulticastSocket(6789);
s.joinGroup(group, netIf);
byte[] msgBytes = msg.getBytes(StandardCharsets.UTF_8);
DatagramPacket hi = new DatagramPacket(msgBytes, msgBytes.length,
group);
我正在尝试使用 Mutlicast 向多个客户端发送数据。 我查看了文档:https://docs.oracle.com/en/java/javase/16/docs/api/java.base/java/net/MulticastSocket.html#setNetworkInterface(java.net.NetworkInterface)
// join a Multicast group and send the group salutations
...
String msg = "Hello";
InetAddress mcastaddr = InetAddress.getByName("228.5.6.7");
InetSocketAddress group = new InetSocketAddress(mcastaddr, port);
NetworkInterface netIf = NetworkInterface.getByName("bge0");
MulticastSocket s = new MulticastSocket(6789);
s.joinGroup(group, netIf);
byte[] msgBytes = msg.getBytes(StandardCharsets.UTF_8);
DatagramPacket hi = new DatagramPacket(msgBytes, msgBytes.length,
group, 6789);
我的问题是最后一行。 class DatagramPacket 没有这样的构造函数。 这是文档中的错误还是我愚蠢?
似乎是 JavaDocs 中的一个错误。我的代码现在运行,用于本地多路广播:
// join a Multicast group and send the group salutations
...
String msg = "Hello";
InetAddress mcastaddr = InetAddress.getByName("228.5.6.7");
InetSocketAddress group = new InetSocketAddress(mcastaddr, 6789);
NetworkInterface networkInterface = NetworkInterface.getByInetAddress(InetAddress.getByName("localhost"));
MulticastSocket s = new MulticastSocket(6789);
s.joinGroup(group, netIf);
byte[] msgBytes = msg.getBytes(StandardCharsets.UTF_8);
DatagramPacket hi = new DatagramPacket(msgBytes, msgBytes.length,
group);