UDP 服务器

监听端口上的 UDP 数据报并将每个数据报分发给您的应用程序。这是驱动 TsgcSTUNServer 和 TsgcTURNServer 的同一引擎。

TsgcUDPServer

高性能 UDP 监听器 — 绑定到端口,接收来自任意对等方的数据报,向特定端点回复,通过工作线程跨核心扩展。

组件类

TsgcUDPServer

协议

UDP (RFC 768)

支持平台

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 / PeerPortTsgcUDPConnection

回复路径

Connection.WriteData 使用同一套接字将数据报发回源对等方 — 无需额外的出站绑定。

线程分发

工作线程池处理入站数据包 — 如果您的处理程序执行繁重工作,可通过 WorkerCount 进行配置。接收线程永不阻塞。

IPv4 / IPv6 / 双栈

通过 IPVersion 支持纯 IPv4、纯 IPv6 或双栈绑定。组播组加入通过 JoinMulticastGroup 暴露。

TsgcSTUNServer / TsgcTURNServer 的底层

STUN 和 TURN 服务器(完整的 RFC 8489 / 8656 实现)构建于此组件之上 — 您也可以用它实现任何自定义 UDP 协议。

禁止分片提示

在出站写入时设置 DontFragment := True — 适用于自定义协议中的路径 MTU 探测。

规范与参考资料

该组件实现的协议权威来源。

文档与示例

直达组件参考文档、获取即用示例项目并下载试用版。

在线帮助 — TsgcUDPServer 该组件的完整属性、方法和事件参考。
示例项目 — Demos\35.P2P\01.UDP_Server_Client 即用示例项目,包含在 sgcWebSockets 包中 — 请从下方下载试用版。
技术文档(PDF) 功能介绍、快速入门、Delphi 与 C++ Builder 代码示例及原始参考资料 — 仅限此组件。
用户手册(PDF) 涵盖库中每个组件的综合手册。

准备好运行 UDP 服务器了吗?

下载免费试用版,在 Delphi 中监听 UDP 数据报。