Java教程是针对JDK 8编写的。本页面中描述的示例和实践不利用后续版本中引入的改进,并可能使用不再可用的技术。
有关Java SE 9和后续版本中更新的语言特性的摘要,请参阅Java语言更改。
有关所有JDK版本的新功能、增强功能以及已删除或弃用选项的信息,请参阅JDK发行说明。
通过可靠的通道(如TCP套接字)进行通信的客户端和服务器之间有一个专用的点对点通道,或者至少是这样的假象。为了通信,它们建立连接、传输数据,然后关闭连接。在通道上发送的所有数据都按照发送顺序接收。这是通道所保证的。
相反,通过数据报进行通信的应用程序发送和接收完全独立的信息包。这些客户端和服务器没有也不需要专用的点对点通道。数据报的传递到目的地不是有保证的。它们到达的顺序也不是有保证的。
数据报是通过网络发送的独立、自包含的消息,其到达、到达时间和内容都不是有保证的。
java.net
包中包含三个类,可帮助您编写使用数据报在网络上发送和接收数据包的Java程序:DatagramSocket
、DatagramPacket
和MulticastSocket
应用程序可以通过DatagramSocket
发送和接收DatagramPacket
。此外,可以通过MulticastSocket
向多个接收者广播DatagramPacket
。