UDP简介
UDP: User Datagram Protocol的简称, 中文名是用户数据包协议,是 OSI 参考模型中一种无连接的传输层协议,提供面向事务的简单不可靠信息传送服务。
特点:每个数据报中都给出了完整的地址信息,因此无需要建立发送方和接收方的连接。
UDP传输数据时是有大小限制的,每个被传输的数据报必须限定在64KB之内。
UDP是一个不可靠的协议,发送方所发送的数据报并不一定以相同的次序到达接收方。
udp socket实现数据传输
socket编程实现UDP数据传输基于DatagramSocket与DatagramPacketAPI实现。
[java] view plain copy
[java] view plain copyimport java.io.IOExcepTIon;
import java.net.DatagramPacket;
import java.net.DatagramSocket;
import java.net.InetAddress;
/**
* 客户端发送数据
*/
public class UdpClient {
public staTIc void main(String[] args) throws IOExcepTIon {
// 1.定义服务器的地址、端口号、数据
byte[] data = “udpclient发送数据”.getBytes();
InetAddress address = InetAddress.getByName(“localhost”);
int port = 8086;
// 2.创建数据报,包含发送的数据信息
DatagramPacket packet = new DatagramPacket(data, data.length, address,port);
// 3.创建DatagramSocket对象
DatagramSocket socket = new DatagramSocket();
// 4.向服务器端发送数据报
socket.send(packet);
socket.close();
}
}
[java] view plain copyimport java.io.IOExcepTIon;
import java.net.DatagramPacket;
import java.net.DatagramSocket;
/**
*服务器接收数据
*/
public class UdpServer {
public static void main(String[] args) throws IOException {
DatagramSocket socket = new DatagramSocket(8086);
byte[] data = new byte[1024];
DatagramPacket packet = new DatagramPacket(data, data.length);
socket.receive(packet);
String info = new String(data, 0, packet.getLength());
System.out.println(“udpservice接收数据是” + info);
socket.close();
}
}