简体   繁体   English

使用 InetSocketAddress 创建 DatagramPacket,缺少构造函数

[英]Create DatagramPacket with InetSocketAddress, missing constructor

I'm trying to send data with Mutlicast to multiple clients.我正在尝试使用 Mutlicast 将数据发送到多个客户端。 I looked at the docs: https://docs.oracle.com/en/java/javase/16/docs/api/java.base/java/net/MulticastSocket.html#setNetworkInterface(java.net.NetworkInterface)我查看了文档: 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);

My problem is the last line.我的问题是最后一行。 The class DatagramPacket doesn't have such constructor. class DatagramPacket没有这样的构造函数。 Is this a mistake in the Docs or am I dumb?这是文档中的错误还是我愚蠢?

Seems to be a mistake in the JavaDocs.似乎是 JavaDocs 中的一个错误。 My code runs now, for local mutlicasting:我的代码现在运行,用于本地多播:

// 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);

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM