Java的Socket通信分为TCP和UDP两种,Socket和ServerSocket类用于TCP通信,DatagramSocket用于UDP通信。
使用DatagramSocket发送UDP数据包时,首先new一个DatagramPacket,再给DatagramPacket设定目的地的IP地址和端口,然后使用DatagramSocket发送出去。
DatagramSocket sct;
DatagramPacket pkt;
try{
pkt = new DatagramPacket(b_total,2);
pkt.setAddress(InetAddress.getByName(MainActivity.address_server));
pkt.setPort(MainActivity.port_server);
sct.send(pkt);
}
catch(Exception e){ }
接收数据包时,首先new一个DatagramPacket,然后用DatagramSocket接收数据包,可以使用DatagramPacket的getData()方法读出数据包里面的数据,存储在byte数组里面。
public static DatagramSocket client_ds;
public static DatagramPacket client_dp;
public static byte[] tmp_byte;
try{
client_dp = new DatagramPacket(client_buffer, client_buffer.length);
// 接收数据包
client_ds.receive(client_dp);
tmp_byte = client_dp.getData();
}
catch (Exception e){
}