Delphi UDP 服务器

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

TsgcUDPServer

高性能 UDP 监听器 — 绑定到端口,接收来自任意对等方的数据报,向特定端点回复,全部通过一个绑定套接字完成。

组件类

TsgcUDPServer

协议

UDP (RFC 768)

支持平台

Windows, macOS, Linux, iOS, Android

版本

Professional / Enterprise

放置、监听、回复

设置 Port,Active := True,然后在 OnUDPRead 中处理入站数据报,并通过 Socket.WriteData 回复 — 一个套接字,任意数量的远程对等方。

uses
  sgcP2P, sgcUDP_Classes, sgcSocket_Classes;

// TFormUDPServer 持有 FServer: TsgcUDPServer 和事件处理程序

procedure TFormUDPServer.StartServer;
begin
  FServer := TsgcUDPServer.Create(nil);
  FServer.Port := 4000;

  FServer.OnUDPRead := OnUDPRead;

  FServer.Active := True;
end;

procedure TFormUDPServer.OnUDPRead(Sender: TObject;
  Socket: TsgcUDPSocket; Bytes: TsgcBytes);
begin
  // 回显给发来该数据报的对等方
  Socket.WriteData(TBytes(Bytes));
end;
// includes: sgcP2P.hpp, sgcUDP_Classes.hpp, sgcSocket_Classes.hpp
TsgcUDPServer *Server = new TsgcUDPServer(this);
Server->Port = 4000;
Server->OnUDPRead = OnUDPRead;
Server->Active = true;

void __fastcall TFormUDPServer::OnUDPRead(TObject *Sender,
  TsgcUDPSocket *Socket, TsgcBytes Bytes)
{
  // 回显给发来该数据报的对等方
  Socket->WriteData(TBytes(Bytes));
}

内部功能

该 UDP 监听器将每个数据报连同它到达时所用的 TsgcUDPSocket 一起交给您的处理程序,该套接字同时也是回复路径。

单端口多对等方

一个绑定套接字即可处理来自任意数量远程端点的数据报。每次触发 OnUDPRead 都会携带一个 TsgcUDPSocket,其 IPPort 标识发送方。

回复路径

Socket.WriteData 通过同一套接字将数据报发回源对等方,服务器同时还提供 WriteData(ip, port, ...),可发送到任意其他端点。

WatchDog

当监听器不再响应时,WatchDog 会将其重新启动,而 OnBeforeWatchDog 让您有机会否决这次重启。OnStartupOnShutdown 包围每一次绑定。

IPv4 / IPv6 与多个绑定

通过 IPVersion 设置地址族;当服务器必须监听多个地址时,可使用 AddBindingRemoveBindingGetBindingBindings 中为每个地址添加一条记录。

TsgcSTUNServer / TsgcTURNServer 的底层

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

DTLS

设置 DTLS := True 并填写 DTLSOptions,即可在 DTLS 会话中传输数据报,由 OnDTLSVerifyPeer 决定您接受哪些对等方证书。

规范与参考资料

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

文档与示例

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

在线帮助 — TsgcUDPServer 该组件的完整属性、方法和事件参考。
示例项目 — Demos\35.P2P\01.UDP_Server_Client 即用示例项目,包含在 sgcWebSockets 包中 — 请从下方下载试用版。
技术文档(PDF) 功能介绍、快速入门、Delphi 与 C++ Builder 代码示例及原始参考资料 — 仅限此组件。
用户手册(PDF) 涵盖库中每个组件的综合手册。
超值之选:All-AccesseSeGeCe 全部产品,含高级支持,每年 €1,059 起。
查看 All-Access 价格

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

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