UDP 服务器
监听端口上的 UDP 数据报并将每个数据报分发给您的应用程序。这是驱动 TsgcSTUNServer 和 TsgcTURNServer 的同一引擎。
监听端口上的 UDP 数据报并将每个数据报分发给您的应用程序。这是驱动 TsgcSTUNServer 和 TsgcTURNServer 的同一引擎。
高性能 UDP 监听器 — 绑定到端口,接收来自任意对等方的数据报,向特定端点回复,通过工作线程跨核心扩展。
TsgcUDPServer
Windows, macOS, Linux, iOS, Android
Professional / Enterprise
设置 Port,Active := True,然后在 OnMessage 中处理入站数据报,并通过 Connection.WriteData 回复 — 一个套接字,任意数量的远程对等方。
uses
sgcP2P;
var
Server: TsgcUDPServer;
begin
Server := TsgcUDPServer.Create(nil);
Server.Port := 4000;
Server.OnMessage := procedure(Connection: TsgcUDPConnection;
const aText: string)
begin
// echo back to the originating peer
Connection.WriteData('echo: ' + aText);
end;
Server.Active := True;
end;
// uses: sgcP2P
TsgcUDPServer *Server = new TsgcUDPServer(this);
Server->Port = 4000;
Server->Active = true;
多线程 UDP 监听器,将每个数据报分发到工作线程池,并为回复路径暴露 TsgcUDPConnection。
一个绑定套接字处理来自任意数量远程端点的数据报。每次触发 OnMessage 时,携带标识源 PeerIP / PeerPort 的 TsgcUDPConnection。
Connection.WriteData 使用同一套接字将数据报发回源对等方 — 无需额外的出站绑定。
工作线程池处理入站数据包 — 如果您的处理程序执行繁重工作,可通过 WorkerCount 进行配置。接收线程永不阻塞。
通过 IPVersion 支持纯 IPv4、纯 IPv6 或双栈绑定。组播组加入通过 JoinMulticastGroup 暴露。
STUN 和 TURN 服务器(完整的 RFC 8489 / 8656 实现)构建于此组件之上 — 您也可以用它实现任何自定义 UDP 协议。
在出站写入时设置 DontFragment := True — 适用于自定义协议中的路径 MTU 探测。