Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/387.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/sockets/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何使用java向关机系统广播?_Java_Sockets - Fatal编程技术网

如何使用java向关机系统广播?

如何使用java向关机系统广播?,java,sockets,Java,Sockets,我们在java中使用socket.send(packet)函数将“包”发送到给定的端口。 我的问题是,我必须使用UDP协议向关机系统发送数据包。 send()函数的问题在于,它首先验证主机IP是否正确 多播与否。现在我的局域网是广播型的。所以我有 问题是如何使用这个函数。 谁能给我一个方法吗?你知道如何用java发送udp数据包吗 首先,必须在网络中启用广播 然后,所有服务器都必须加入到约定的多播地址 InetAddress address = InetAddress.getByName( "2

我们在java中使用socket.send(packet)函数将“包”发送到给定的端口。 我的问题是,我必须使用UDP协议向关机系统发送数据包。 send()函数的问题在于,它首先验证主机IP是否正确 多播与否。现在我的局域网是广播型的。所以我有 问题是如何使用这个函数。
谁能给我一个方法吗?

你知道如何用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() );

服务器在接受该消息时应启动关机流程。

很抱歉,但我想您还没有弄清楚我的问题。看,我在局域网上叫醒你。因此,我不必关闭系统,而是醒来。现在的问题是…send()函数只在多播中起作用。我的局域网是广播型的。所以这个send()函数不起作用。首先,广播与此无关。如果您有网络路由器,则必须在网络路由器中启用多播。其次,OP根本不做多播,所以答案是不相关的。