将数据及源和目的封装成数据包,不需要建立连接。
每个数据包的大小限制在64k内。
因无连接,是不可靠的协议,但是速度快。
客户端:
1、创建UDP传输的发送端
2、建立UDP的Socket服务
3、将要发送的数据封装到数据包中
4、通过UDP的Socket服务奖数据包发送过去
5、关闭Socket服务
public static void main(String[] args) throws IOException {
DatagramSocket ds = new DatagramSocket();
BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
String line = null;
while ((line = br.readLine()) != null) {
byte[] bys = line.getBytes();
InetAddress in = InetAddress.getLocalHost();
DatagramPacket dp = new DatagramPacket(bys, bys.length, in, 10000);
ds.send(dp);
}
ds.close();
}
1、建立UDP的Socket服务
2、创建数据包,用于存储接收到的数据,方便数据包对象的方法解析这些数据
3、用Socket服务的receive方法将接收到的数据存储到数据包中
4、通过数据包的方法解析数据包中的数据,如地址、端口、数据内容
5、关闭流
public static void main(String[] args) throws IOException {
DatagramSocket ds = new DatagramSocket(10000);
byte[] buf = new byte[1024];
DatagramPacket dp = new DatagramPacket(buf, buf.length);
while (true) {
ds.receive(dp);
String data = new String(dp.getData(), 0, dp.getLength());
System.out.println(dp.getAddress().getHostAddress() + ":"
+ dp.getPort() + ":" + data);
}
}