組播的傳送與接收問題
阿新 • • 發佈:2019-02-01
接收源程式:
import java.io.IOException;
import java.net.DatagramPacket;
import java.net.InetAddress;
import java.net.MulticastSocket;
import javax.swing.*;
public class ReceiveMulPacket implements Runnable{
DatagramPacket pack;
MulticastSocket mulSocket;
InetAddress inetAddress;
byte msg[]=new byte[5000];
public ReceiveMulPacket() throws IOException{
mulSocket=new MulticastSocket(9875);
inetAddress=InetAddress.getByName("226.255.8.0");
mulSocket.joinGroup(inetAddress);
new Thread(this).start();
}
public void run() {
while(true){
try {
System.out.println("before");
pack=new DatagramPacket(msg,msg.length,inetAddress,9875);
mulSocket.receive(pack);
System.out.println("after");
String reMsg=new String(pack.getData(),0,pack.getLength());
System.out.println(reMsg);
} catch (IOException e) {
e.printStackTrace();
}
}
}
public static void main(String[] args) {
try {
new ReceiveMulPacket();
} 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;
public class SendMsg {
public static void sendMulPacket(String msg) throws IOException{
byte data[]=msg.trim().getBytes();
MulticastSocket mulSocket=new MulticastSocket(9875);
InetAddress inetAddress=InetAddress.getByName("226.255.8.0");
mulSocket.joinGroup(inetAddress);
DatagramPacket pack=new DatagramPacket(data,data.length,inetAddress,9875);
mulSocket.send(pack);
}
public static void main(String[] args) {
try {
sendMulPacket("upl"+"information");
System.out.println("sended");
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
}