说明
UdpSession既能充当服务器,又能够作为客户端。
可配置项
| 属性名 | 属性描述 | 
|---|---|
| SetBufferLength | 缓存池容量,默认1024*10 | 
| SetThreadCount | 多线程数量。该值标识重叠IO的数量,默认为10,该值不要设置太大。 | 
| SetServerName | 服务器标识名称,无实际使用意义。 | 
| SetReceiveType | 接收类型。 - AUTO:自动接收模式。 - None:UDP不支持  | 
| UsePlugin | 是否启用插件。在启用时或许会带来一点点性能损耗,基本上不是千万数据交互根本不值一提。 | 
| SetBindIPHost | 表示本地监听地址 | 
| SetRemoteIPHost | 表示默认发送时的目标地址,一般作为客户端时建议设置。 | 
| UseReuseAddress | 启用端口复用。该配置可在服务器、或客户端在监听端口时,运行监听同一个端口。可以一定程度缓解端口来不及释放的问题 | 
支持插件接口客户端、服务器均支持
声明自定义实例类,然后实现IUdpSession接口,即可实现下列事务的触发。
或者继承自UdpSessionBase类,重写相应方法即可。
IUdpSession
| OnReceivedData | 在收到数据时触发 | 
使用UdpSession
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("等待接收");
注意事项:即使不监听地址,Setup和Start都是必须要的。
主要方法简介
| 方法名 | 功能简介 | 
|---|---|
| Start | 启动服务器 | 
| Stop | 停止服务器,可再次调用Start重新使用 | 
| Dispose | 释放服务器,不可再调用Start使用 | 
