# 什么是数据报?

通过可靠通道(例如 TCP 套接字)进行通信的客户端和服务器之间有一个专用的点对点通道, 或者至少是一个通道。要进行通信,它们会建立连接,传输数据,然后关闭连接。 通过信道发送的所有数据的接收顺序与发送的顺序相同。这是由渠道保证的。

相反,通过数据报通信的应用程序发送和接收完全独立的信息包。这些客户端和服务器没有也不需要专用的点对点通道。 无法保证将数据报传送到目的地。他们到达的顺序也不能保证。

定义: 数据报是自包含的独立消息,其到达时间和内容顺序不能保证。

java.net 包包含三个类来帮助你编写使用数据包在网络上发送和接收数据包的 Java 程序:

  • DatagramSocket
  • DatagramPacket
  • MulticastSocket

应用程序可以通过 DatagramSocket 发送和接收数据报。此外,DatagramPacket 可以广播给多个接收方, 所有接收方都监听一个多播套接字 MulticastSocket。