?? multicastconnection.java
字號:
import java.io.*;
import java.net.*;
public class MulticastConnection
{
public static final int DEFAULT_PORT = 1234;
// 連接、發送和接收消息用的多點傳送
protected MulticastSocket mcSocket;
// 屬于多點傳送群中的一個IP地址
protected InetAddress groupAddress;
// 連接用的端口號
protected int port;
// 發送和接收消息的IP 報
protected DatagramPacket dataPacket;
// 接收和發送數據報用的 byte數組
protected byte[] data;
// 一個數據報可以容納的字節的最大數目
protected final int PACKET_SIZE = 1024;
// 用給定的地址和端口創建一個新的MulticastConnection對象
public MulticastConnection(String address, int portNo) throws Exception
{
// 將給定的地址解析為有效的IP地址
groupAddress = InetAddress.getByName(address);
port = portNo;
// 取保端口號有效
mcSocket = (port > 0) ? new MulticastSocket(port) : new MulticastSocket(DEFAULT_PORT);
// 將socket連接到IP地址群
mcSocket.joinGroup(groupAddress);
data = null;
}
// 試圖從群中斷開
public void disconnect()
{
if(mcSocket == null) return;
try
{
mcSocket.leaveGroup(groupAddress);
}
catch(IOException e)
{
// 在這里處理錯誤信息...
}
}
// 嘗試從群中接收一個數據報
public String recv()
{
data = new byte[PACKET_SIZE];
dataPacket = new DatagramPacket(data,data.length);
try
{
mcSocket.receive(dataPacket);
}
catch(IOException e)
{
return "";
}
// 將數據報中的原始字節轉化為一個有效的String對象
return new String(dataPacket.getData()).trim();
}
// 嘗試將指定的String對象作為一個IP數據報發送出去
public boolean send(String msg)
{
dataPacket = new DatagramPacket(
msg.getBytes(), msg.length(), groupAddress, port);
try
{
mcSocket.send(dataPacket);
}
catch(IOException e)
{
return false;
}
return true;
}
} // MulticastConnection
?? 快捷鍵說明
復制代碼
Ctrl + C
搜索代碼
Ctrl + F
全屏模式
F11
切換主題
Ctrl + Shift + D
顯示快捷鍵
?
增大字號
Ctrl + =
減小字號
Ctrl + -