版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/Caiaixiong/article/details/85244405
UDP协议
一种无连接的传输层协议,提供面向事务的简单不可靠信息传送服务。
特点
- 非面向连接,传输不可靠,可能丢失
- 发送不管对方是否准备好,接收方收到也不确认
- 可以广播发送
- 非常简单的协议,开销小
UDP编程
客户端向服务器端发送信息(最基本的操作)
import java.net.DatagramPacket;
import java.net.DatagramSocket;
import java.net.InetSocketAddress;
/**
* 发送端
*/
public class UdpCilent {
public static void main(String[] args) throws Exception {
System.out.println("放送端开始发送...");
//1.使用DatagramSocket,指定端口创建发送端
DatagramSocket client = new DatagramSocket(8888);
//2.准备数据,转成字节数组
String data = "test udp";
byte[] buff = data.getBytes();
//3.封装成DatagramPacket 包裹,需要指定目的地
DatagramPacket p = new DatagramPacket(buff, 0, buff.length, new InetSocketAddress("localhost", 6666));
//4.发送包裹send(DatagramPacket p)
client.send(p);
//5.释放资源
client.close();
}
}
import java.net.DatagramPacket;
import java.net.DatagramSocket;
/**
* 接收端
*/
public class UdpServer {
public static void main(String[] args) throws Exception {
System.out.println("接收端开始接收...");
//1.使用DatagramSocket,指定端口创建接收端
DatagramSocket server = new DatagramSocket(6666);
//2.准备容器封装成DatagramPacket
byte[] buf = new byte[1024*10];
DatagramPacket p = new DatagramPacket(buf, buf.length);
//3.阻塞式接收
server.receive(p);
//4.分析数据
System.out.println(new String(p.getData()));
//5.释放资源
server.close();
}
}