我们在java中使用socket.send(packet)函数向给定端口发送“数据包”。 我的问题是我必须使用UDP协议将数据包发送到关机系统。 send()函数的问题在于它首先验证主机IP是否是 多播与否。现在我的局域网是广播类型。所以我有 问题是使用这个功能。 有谁能请给我一个方法?
答案 0 :(得分:0)
你知道如何在java中发送udp数据包吗?
首先,必须在您的网络中启用广播。
然后,所有服务器必须加入已商定的多播地址。
InetAddress address = InetAddress.getByName( "230.0.0.1" );
MulticastSocket socket = new MulticastSocket( 12345 );
socket.joinGroup( address );
如果要激活系统关闭,请向多播地址发送约定的消息(例如,“die”)。
DatagramPacket packet = new DatagramPacket( buf, buf.length );
socket.receive( packet );
String received = new String( packet.getData(), 0, packet.getLength() );
接受该消息的服务器应该启动关闭流程。