Android:
public class BroadCastUdp extends Thread{
public static final int DEFAULT_PORT = 43708;
private static final int MAX_DATA_PACKET_LENGTH = 40;
private byte[] buffer = new byte[MAX_DATA_PACKET_LENGTH];
private String dataString;
private DatagramSocket udpSocket;
public BroadCastUdp( String dataString ) {
this.dataString = dataString;
}
public void run(){
DatagramPacket dataPacket = null;
try {
udpSocket = new DatagramSocket(DEFAULT_PORT );
dataPacket = new DatagramPacket(buffer, MAX_DATA_PACKET_LENGTH);
byte[] data = dataString.getBytes();
dataPacket.setData( data );
dataPacket.setLength( data.length );
dataPacket.setPort( DEFAULT_PORT );
InetAddress broadcastAddr;
broadcastAddr = InetAddress.getByName("255.255.255.255");
dataPacket.setAddress(broadcastAddr);
} catch (Exception e) {
Log.e("Broad:", e.toString());
}
try {
udpSocket.send(dataPacket);
} catch(Exception e) {
Log.e("Broad:", e.toString());
}
udpSocket.close();
}
}
Android使用:
new BroadCastUdp("lala").start();
pc端Java代码:
//Socket接受UDP广播
try {
udpSocket = new DatagramSocket(43708);
} catch (SocketException e) {
System.out.println(e.toString());
}
while (true) {
try {
udpSocket.receive(udpPacket);
} catch (Exception e) {
System.out.println(e.toString());
}
if (udpPacket.getLength() != 0) {
String codeString = new String(data, 0, udpPacket.getLength());
System.out.println("广播数据:" + codeString);
}
}