UDP: User Datagram Protocol的簡稱, 中文名是用戶數據包協(xié)議,是 OSI 參考模型中一種無連接的傳輸層協(xié)議,提供面向事務的簡單不可靠信息傳送服務。
特點:每個數據報中都給出了完整的地址信息,因此無需要建立發(fā)送方和接收方的連接。
UDP傳輸數據時是有大小限制的,每個被傳輸的數據報必須限定在64KB之內。
UDP是一個不可靠的協(xié)議,發(fā)送方所發(fā)送的數據報并不一定以相同的次序到達接收方。
udp socket實現數據傳輸socket編程實現UDP數據傳輸基于DatagramSocket與DatagramPacketAPI實現。
?。踛ava] view plain copy
?。踛ava] view plain copyimport java.io.IOExcepTIon;
import java.net.DatagramPacket;
import java.net.DatagramSocket;
import java.net.InetAddress;
/**
* 客戶端發(fā)送數據
*/
public class UdpClient {
public staTIc void main(String[] args) throws IOExcepTIon {
// 1.定義服務器的地址、端口號、數據
byte[] data = “udpclient發(fā)送數據”.getBytes();
InetAddress address = InetAddress.getByName(“localhost”);
int port = 8086;
// 2.創(chuàng)建數據報,包含發(fā)送的數據信息
DatagramPacket packet = new DatagramPacket(data, data.length, address,port);
// 3.創(chuàng)建DatagramSocket對象
DatagramSocket socket = new DatagramSocket();
// 4.向服務器端發(fā)送數據報
socket.send(packet);
socket.close();
}
}
?。踛ava] 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();
}
}





