使用 Java 控制 UDP 协议
什么是 UDP 协议
UDP 协议的全称是用户数据报,在网络中它与 TCP 协议一样用于处理数据包。在 OSI
模型中,在第四层——传输层,处于 IP 协议的上一层。UDP 有不提供数据报分组、组装和
不能对数据包的排序的缺点,也就是说,当报文发送之后,是无法得知其是否安全完整到达
的。
为什么要使用 UDP
在选择使用协议的时候,选择 UDP 必须要谨慎。在网络质量令人不十分满意的环境下,
UDP 协议数据包丢失会比较严重。但是由于 UDP 的特性:它不属于连接型协议,因而具有
资源消耗小,处理速度快的优点,所以通常音频、视频和普通数据在传送时使用 UDP 较多,
因为它们即使偶尔丢失一两个数据包,也不会对接收结果产生太大影响。比如我们聊天用的
ICQ 和 OICQ 就是使用的 UDP 协议。
在 Java 中操纵 UDP
使用位于 JDK 中 Java.net 包下的 DatagramSocket 和 DatagramPacket 类,可以非常方便
地控制用户数据报文。
在描述它们之前,必须了解位于同一个位置的 InetAddress 类。InetAddress 实现了 Java.io.
Serializable 接口,不允许继承。它用于描述和包装一个 Internet IP 地址,通过三个方法返回
InetAddress 实例:
getLocalhost():返回封装本地地址的实例。
getAllByName(String host):返回封装 Host 地址的 InetAddress 实例数组。