62,614
社区成员
发帖
与我相关
我的任务
分享
import java.io.IOException;
import java.net.DatagramPacket;
import java.net.InetAddress;
import java.net.MulticastSocket;
public class Client {
public static void main(String[] args) {
// TODO Auto-generated method stub
try {
byte[] arb = "hello".getBytes();
InetAddress inetAddress = InetAddress.getByName("230.0.0.1");
DatagramPacket datagramPacket = new DatagramPacket(arb, arb.length,
inetAddress, 7777);
MulticastSocket multicastSocket = new MulticastSocket();
multicastSocket.send(datagramPacket);
multicastSocket.close();
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
}
import java.io.IOException;
import java.net.DatagramPacket;
import java.net.InetAddress;
import java.net.MulticastSocket;
import java.net.NetworkInterface;
public class Server {
public static void main(String[] args) {
// TODO Auto-generated method stub
try {
MulticastSocket mcastSocket = new MulticastSocket(7777);
InetAddress inetAddress = InetAddress.getByName("230.0.0.1");
// 以下重点来了,把mcastSocket设置为监听名为net4的网卡,可是不行
mcastSocket.setNetworkInterface(NetworkInterface.getByName("net4"));
mcastSocket.setInterface(InetAddress.getByName("192.168.2.102"));
// 两种办法都试了,都不行。192.168.2.102是需要监听的网卡的IP
// 不管用以上哪种方法,都接收不到数据
mcastSocket.joinGroup(inetAddress);
byte[] arb = new byte[100];
DatagramPacket datagramPacket = new DatagramPacket(arb, arb.length);
mcastSocket.receive(datagramPacket);
System.out.println("Server:"
+ new String(arb, 0, datagramPacket.getLength()));
mcastSocket.close();
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
}