# UDP Checker

`type: udp` 用于 UDP payload 请求-响应检查。

## 配置项

| 字段                   | 说明                                       | 必填 | 默认值 |
| ---------------------- | ------------------------------------------ | ---- | ------ |
| `udp.host`             | 目标主机地址                               | 是   | 无     |
| `udp.port`             | 目标端口，范围 `1-65535`                   | 是   | 无     |
| `udp.payload`          | 发送数据                                   | 否   | `""`   |
| `udp.encoding`         | payload 编码：`text`、`hex`、`base64`      | 否   | `text` |
| `udp.responseEncoding` | 响应解码：`text`、`hex`、`base64`          | 否   | `text` |
| `udp.maxResponseBytes` | 响应最大字节数，支持 `KB`、`MB`、`GB` 单位 | 否   | `4KB`  |

## expect 校验项

| 字段           | 说明                                          | 必填 | 默认值 |
| -------------- | --------------------------------------------- | ---- | ------ |
| `responded`    | 期望是否收到响应                              | 否   | `true` |
| `response`     | 响应内容校验，使用 `ContentExpectations` 数组 | 否   | 无     |
| `responseSize` | 响应字节数校验，使用 `ValueMatcher`           | 否   | 无     |
| `sourceHost`   | 响应来源地址校验，使用 `ValueMatcher`         | 否   | 无     |
| `sourcePort`   | 响应来源端口校验，使用 `ValueMatcher`         | 否   | 无     |
| `durationMs`   | 完整执行耗时校验，使用 `ValueMatcher`         | 否   | 无     |

## 示例

```yaml
- id: "udp-heartbeat"
  name: "UDP 心跳检测"
  type: udp
  udp:
    host: "127.0.0.1"
    port: 9000
    payload: "PING"
  expect:
    responded: true
    response:
      - contains: "PONG"
    durationMs:
      lte: 100
```
