?? multicastdatagramreceivedemo.java
字號:
//【例11-12】 組播接收程序(客戶端)。
//程序清單11-12: MulticastDatagramReceiveDemo.java
package datagram;
import java.net.*;
import java.io.*;
public class MulticastDatagramReceiveDemo {
public static final int PORT = 5558;
public static void main(String[] args) throws IOException {
new MulticastDatagramReceiveDemo();
}
public MulticastDatagramReceiveDemo() throws IOException {
// 以指定端口PORT,創(chuàng)建MulticastSocket組播套接字的實例
MulticastSocket multicastSocket = new MulticastSocket(PORT);
// D類IP地址為組播地址,其IP地址范圍是:224.0.0.0~239.255.255.255
// 以指定的D類IP地址225.8.8.8創(chuàng)建地址實例
InetAddress multicastIP = InetAddress.getByName("225.8.8.8");
multicastSocket.joinGroup(multicastIP);// 將D類地址加入組播地址組
DatagramPacket packet; // 聲明一個接收數(shù)據(jù)包引用
System.out.println("客戶端接收進(jìn)程已啟動...");
// 循環(huán)地接收數(shù)據(jù)包
for (int i = 0; i < 8; i++) {
byte[] buf = new byte[200]; // 創(chuàng)建字節(jié)數(shù)組buf以保存接收到的數(shù)據(jù)包
packet = new DatagramPacket(buf, buf.length);// 創(chuàng)建接收數(shù)據(jù)包
multicastSocket.receive(packet);// 用組播套接字的實例方法接收數(shù)據(jù)包
// 提取接收的數(shù)據(jù)包中的數(shù)據(jù)并在屏幕輸出
System.out.println("客戶端接收進(jìn)程收到來自"
+ packet.getAddress().getHostAddress() + "組播服務(wù)器的數(shù)據(jù)包中的數(shù)據(jù): "
+ new String(packet.getData()));
}
multicastSocket.leaveGroup(multicastIP);// D類地址離開組播地址組
multicastSocket.close();// 關(guān)閉組播套接字
}
}
?? 快捷鍵說明
復(fù)制代碼
Ctrl + C
搜索代碼
Ctrl + F
全屏模式
F11
切換主題
Ctrl + Shift + D
顯示快捷鍵
?
增大字號
Ctrl + =
減小字號
Ctrl + -