udp的特点:
1、面向无连接
2、传输速度较快
3、传输数据不安全,数据容易丢失
一、创建发送文件send.class
//1、创建Socket对象
DatagramSocket ds = new DatagramSocket();
//2、写数据
String data = "约吗.....";
//3、创建数据包对象,讲数据封装到里面
DatagramPacket dp = new DatagramPacket(data.getBytes(),data.getBytes().length,
InetAddress.getByName("192.168.0.17"),10086);
//4、发送
ds.send(dp);
//5、关闭
ds.close();
二、创建接收文件Recive.class
//1、创建Socket对象
DatagramSocket ds = new DatagramSocket(10086);
//2、创建数据包对象
byte[] bys = new byte[1024];
DatagramPacket dp = new DatagramPacket(bys, bys.length);
//3、接收数据
ds.receive(dp);
//4、解析数据
//获取地址
String ip = dp.getAddress().getHostAddress();
//获取数据
String data = new String(bys, 0, dp.getLength());
System.out.println(ip + "----" + data);
//5、释放资源
ds.close();
三、udp实现聊天室
1、发送端
//1、创建Socket对象
DatagramSocket ds = new DatagramSocket();
while (true) {
Scanner sc = new Scanner(System.in);
//2、写数据
String data = sc.next();
//3、创建数据包对象,讲数据封装到里面
DatagramPacket dp = new DatagramPacket(data.getBytes(), data.getBytes().length,
InetAddress.getByName("192.168.0.17"), 10086);
//4、发送
ds.send(dp);
if ("886".equals(data)) {
break;
}
}
//5、关闭
ds.close();
2、接收端
//1、创建Socket对象
DatagramSocket ds = new DatagramSocket(10086);
while (true) {
//2、创建数据包对象
byte[] bys = new byte[1024];
DatagramPacket dp = new DatagramPacket(bys, bys.length);
//3、接收数据
ds.receive(dp);
//4、解析数据
//获取地址
String ip = dp.getAddress().getHostAddress();
//获取数据
String data = new String(bys, 0, dp.getLength());
System.out.println(ip + ": " + data);
}
//5、释放资源
//ds.close();
备注:运行顺序,必须先运行recive,后者运行send,不然接收不到数据。