🔌 UDP 传输
命名空间: Snet.Core.communication.net.udp | 类: UdpClientOperate, UdpServiceOperate, UdpMulticastOperate, UdpBroadcastOperate
UdpClientOperate — UDP 单播客户端
继承: CommunicationAbstract<UdpClientOperate, UdpClientData.Basics>
| 配置 | 类型 | 默认值 | 说明 |
|---|---|---|---|
IpAddress |
string |
"127.0.0.1" |
远程 IP |
Port |
int |
6688 |
远程端口 |
LocalPort |
int |
0 |
本地绑定端口 (0=自动) |
InterruptReconnection |
bool |
true |
自动重连 |
基于 UdpClient,支持 UdpClient.Connect() 建立关联。断线重连相同指数退避机制。
using Snet.Core.communication.net.udp.unicast.client;
var udp = await UdpClientOperate.InstanceAsync(new Basics { IpAddress = "192.168.1.100", Port = 6688 });
await udp.OnAsync();
await udp.SendAsync(data);
await udp.OffAsync();
UdpServiceOperate — UDP 单播服务端
继承: CommunicationServiceAbstract<UdpServiceOperate, UdpServiceData.Basics>
单一 ReceiveLoopAsync 自动发现客户端端点,ConcurrentDictionary<IPEndPoint> 管理已知客户端。
using Snet.Core.communication.net.udp.unicast.service;
var server = await UdpServiceOperate.InstanceAsync(new Basics { Port = 6688 });
await server.OnAsync();
await server.SendAsync(data); // 群发
await server.SendAsync(data, "192.168.1.10:5000"); // 单播
await server.OffAsync();
UdpMulticastOperate — UDP 组播
继承: CommunicationAbstract<UdpMulticastOperate, UdpMulticastData.Basics>
| 配置 | 类型 | 默认值 | 说明 |
|---|---|---|---|
Port |
int |
6688 |
本地绑定端口 |
MulticastAddress |
string |
"239.0.0.1" |
组播组地址 |
MulticastPort |
int |
8866 |
目标端口 (0=使用Port) |
TimeToLive |
short |
1 |
TTL (0=本机,1=子网) |
JoinMulticastGroup/DropMulticastGroup,ReuseAddress,全接口绑定 IPAddress.Any。
using Snet.Core.communication.net.udp.multicast;
var mc = await UdpMulticastOperate.InstanceAsync(new Basics {
Port = 6688, MulticastAddress = "239.0.0.1", TimeToLive = 1
});
await mc.OnAsync();
await mc.SendAsync(data);
await mc.OffAsync();
UdpBroadcastOperate — UDP 广播
继承: CommunicationAbstract<UdpBroadcastOperate, UdpBroadcastData.Basics>
| 配置 | 类型 | 默认值 | 说明 |
|---|---|---|---|
Port |
int |
6688 |
本地绑定端口 |
BroadcastAddress |
string |
"255.255.255.255" |
广播地址 |
BroadcastPort |
int |
8866 |
目标端口 (0=使用Port) |
EnableBroadcast = true,ReuseAddress,IPAddress.Any 绑定。
using Snet.Core.communication.net.udp.broadcast;
var bc = await UdpBroadcastOperate.InstanceAsync(new Basics {
Port = 6688, BroadcastAddress = "255.255.255.255"
});
await bc.OnAsync();
await bc.SendAsync(data);
await bc.OffAsync();
