---
id: createudpsession
title: 创建UdpSession
---

## 一、说明
UDP组件是基于UDP协议的最基础组件，其功能简单，易用。它既能充当服务器，又能够作为客户端。

## 二、产品特点

- 简单易用。
- 多线程。
- 内存池
- 高性能

## 三、产品应用场景

- UDP基础使用场景：可跨平台、跨语言使用。

## 四、支持插件接口

声明自定义实例类，然后实现**IUdpSessionPlugin**接口，即可实现下列事务的触发。或者继承自**UdpSessionPluginBase**类，重写相应方法即可。

|  插件方法| 功能 |
| --- | --- |
| OnReceivedData | 在收到数据时触发 |

## 四、使用UdpSession

```csharp
UdpSession udpSession = new UdpSession();
udpSession.Received += (remote, byteBlock,requestInfo) =>
{
    udpSession.Send(remote, byteBlock);
    Console.WriteLine($"收到：{Encoding.UTF8.GetString(byteBlock.Buffer, 0, byteBlock.Len)}");
};
udpSession.Setup(new TouchSocketConfig()
     .SetBindIPHost(new IPHost(7789)))
     .Start();
Console.WriteLine("等待接收");

```
:::caution 注意

1. 即使不监听地址，Setup和Start都是必须要的。
2. 当udp作为客户端时，Config如果不设置SetBindIPHost，将不会接收，如果不知道绑定那个端口，可以直接绑定0端口，这样，就会使用系统空闲的一个端口了。

:::  