Java的Socket通信分为TCP和UDP两种,Socket和ServerSocket类用于TCP通信,DatagramSocket用于UDP通信。
使用DatagramSocket发送UDP数据包时,首先new一个DatagramPacket,再给DatagramPacket设定目的地的IP地址和端口,然后使用DatagramSocket发送出去。
class="brush:java;gutter:true;"> 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){ }