先简单了解下UDP协议:
UDP (User Datagram Protocol) 是在 OSI 七层模型中的传输层上的一种协议。它和 TCP 类似是用来传输数据的,但是 UDP 更加简单、高效、灵活,适用于对数据传输速度要求较高,但对可靠性要求不高的场景,例如游戏、音频、视频等实时通讯场景。UDP 的工作原理和应用场景都有很大区别于 TCP,本文将详细介绍 UDP 协议的基本原理、特点、应用场景、优缺点以及使用实例。
1、UDP 协议特点
面向无连接:在发送数据之前,不需要先建立连接,因此没有连接建立和断开的过程。
不可靠性:UDP 传输的数据并不会进行校验和确认,也不会重复发送,无法保证数据的可靠性。如果某个数据包在传输过程中丢失或损坏,接收方将无法得到这个数据包。
无序性:UDP 协议是无序的,发送的数据可能会经过不同的路径到达目标地址,因此接收方可能无法按照发送顺序对数据进行组装。
简单性:UDP 协议比 TCP 协议更加简单、轻量,因此传输效率更高。
2、UDP 协议数据传输流程
UDP 协议的数据传输流程比 TCP 简单得多,只需要两个步骤:
发送数据:向目标地址和端口号发送需要传输的数据。
接收数据:接收从源地址和源端口号发来的数据包。
看代码:
POM.XML配置
<!-- Netty -->
<dependency>
<groupId>io.netty</groupId>
<artifactId>netty-all</artifactId>
<version>4.1.101.Final</version>
</dependency>
Client链接类:
package com.gyq.system.udp;
import io.netty.bootstrap.Bootstrap;
import io.netty.buffer.PooledByt