说明

UdpSession既能充当服务器,又能够作为客户端。

可配置项

属性名 属性描述
SetBufferLength 缓存池容量,默认1024*10
SetThreadCount 多线程数量。该值标识重叠IO的数量,默认为10,该值不要设置太大。
SetServerName 服务器标识名称,无实际使用意义。
SetReceiveType 接收类型。
- AUTO:自动接收模式。
- None:UDP不支持
UsePlugin 是否启用插件。在启用时或许会带来一点点性能损耗,基本上不是千万数据交互根本不值一提。
SetBindIPHost 表示本地监听地址
SetRemoteIPHost 表示默认发送时的目标地址,一般作为客户端时建议设置。
UseReuseAddress 启用端口复用。该配置可在服务器、或客户端在监听端口时,运行监听同一个端口。可以一定程度缓解端口来不及释放的问题

支持插件接口客户端、服务器均支持

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

|

IUdpSession

OnReceivedData 在收到数据时触发

使用UdpSession

  1. UdpSession udpSession = new UdpSession();
  2. udpSession.Received += (remote, byteBlock,requestInfo) =>
  3. {
  4. udpSession.Send(remote, byteBlock);
  5. Console.WriteLine($"收到:{Encoding.UTF8.GetString(byteBlock.Buffer, 0, byteBlock.Len)}");
  6. };
  7. udpSession.Setup(new TouchSocketConfig()
  8. .SetBindIPHost(new IPHost(7789)))
  9. .Start();
  10. Console.WriteLine("等待接收");

注意事项:即使不监听地址,Setup和Start都是必须要的。

主要方法简介

方法名 功能简介
Start 启动服务器
Stop 停止服务器,可再次调用Start重新使用
Dispose 释放服务器,不可再调用Start使用

视频介绍