Delphi UDP サーバー
指定したポートで UDP データグラムを待ち受け、各データグラムをアプリケーションに振り分けます。TsgcSTUNServer や TsgcTURNServer を支えるのと同じエンジンです。
指定したポートで UDP データグラムを待ち受け、各データグラムをアプリケーションに振り分けます。TsgcSTUNServer や TsgcTURNServer を支えるのと同じエンジンです。
高性能な UDP リスナーです — ポートにバインドし、任意のピアからデータグラムを受信し、特定のエンドポイントへ応答します。そのすべてを 1 つのバインドされたソケットで行います。
TsgcUDPServer
Windows, macOS, Linux, iOS, Android
Professional / Enterprise
Port を設定して Active := True にすれば、OnUDPRead で受信データグラムを処理し、Socket.WriteData で応答できます — 1 つのソケットで、任意の数のリモートピアに対応します。
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));
}
各データグラムを、それが到着した TsgcUDPSocket とともにハンドラーへ渡す UDP リスナーです。そのソケットが応答パスにもなります。
バインドされた 1 つのソケットで、任意の数のリモートエンドポイントからのデータグラムを処理します。OnUDPRead は、送信元を識別する IP と Port を持つ TsgcUDPSocket とともに発生します。
Socket.WriteData は、同じソケットを使用して送信元のピアへデータグラムを返します。サーバーには、それ以外のエンドポイント宛の WriteData(ip, port, ...) も用意されています。
WatchDog は、リスナーが応答しなくなったときに再起動します。OnBeforeWatchDog では、その再起動を拒否できます。OnStartup と OnShutdown は、各バインドの前後で発生します。
アドレスファミリは IPVersion で指定します。サーバーが複数のアドレスで待ち受ける必要がある場合は、AddBinding、RemoveBinding、GetBinding を使って Bindings にアドレスごとのエントリを追加してください。
RFC 8489 / 8656 を完全実装した STUN および TURN サーバーは、本コンポーネントの上に構築されています。同様の方法で任意のカスタム UDP プロトコルを実装できます。
DTLS := True を設定して DTLSOptions を構成すると、データグラムを DTLS セッション内で送受信できます。受け入れるピア証明書は OnDTLSVerifyPeer で判断します。
コンポーネントリファレンスへのディープリンク、すぐに実行可能なデモプロジェクト、そして体験版のダウンロードはこちらです。
| オンラインヘルプ — TsgcUDPServer 本コンポーネントのプロパティ、メソッド、イベントの完全なリファレンスです。 | 開く | |
| デモプロジェクト — Demos\35.P2P\01.UDP_Server_Client すぐに実行可能なサンプルプロジェクトです。sgcWebSockets パッケージに同梱されています。下記より体験版をダウンロードしてください。 | 開く | |
| 技術ドキュメント (PDF) 本コンポーネントのみを対象とした機能解説、クイックスタート、Delphi および C++ Builder のコードサンプル、一次資料への参照を収録しています。 | 開く | |
| ユーザーマニュアル (PDF) ライブラリ内のすべてのコンポーネントを網羅した総合マニュアルです。 | 開く |