UDP 协议与之前讲到的 TCP 协议不同,是面向无连接的,双方不需要建立连接便可通 信。UDP 通信所发送的数据需要进行封包操作(使用 DatagramPacket 类),然后才能接 收或发送(使用 DatagramSocket 类)。 <br /><br />**DatagramPacket:数据容器(封包)的作用 :**<br />此类表示数据报包。 数据报包用来实现将发送的数据进行封包处理的。
常用方法:
- DatagramPacket(byte[] buf, int length) :构造数据报包,用来指定长度为 length 的数据包。
- DatagramPacket(byte[] buf, int length, InetAddress address, int port) :构造数据报包,用来将长度为 length 的包发送到指定主机上的指定端口号。
- getAddress() :获取发送或接收方计算机的 IP 地址,此数据报将要发往该机器或 者是从该机器接收到的。 getData() :获取发送或接收的数据。
- setData(byte[] buf) :设置发送的数据。
DatagramSocket:用于发送或接收数据报包 :
当客户端要向服务端发送数据时,需要在客户端产生一个 DatagramSocket 对象,在 服务端产生一个 DatagramSocket 对象。客户端的 DatagramSocket 将 DatagramPacket 发送到网络上,然后被服务端的 DatagramSocket 接收。
常用方法:
- DatagramSocket(int port) :创建数据报套接字并将其绑定到本地主机上的指定 端口。
- send(DatagramPacket p) :从此套接字发送数据报包。
- receive(DatagramPacket p) :从此套接字接收数据报包。
- close() :关闭此数据报套接字。
UDP 通信编程基本步骤 :
- 创建服务器端的 DatagramSocket,创建时,定义服务器端的监听端口。
- 创建客户端的 DatagramSocket,创建时,定义客户端的监听端口。
- 在服务器端定义 DatagramPacket 对象,封装待接收的数据包。
- 客户端将数据报包发送出去。
- 服务器端接收数据报包。