Delphi UDP クライアント
Delphi / C++Builder から UDP データグラムを送受信できます。IPv4 と IPv6、オプションの DTLS セッションと SOCKS5 経路に対応し、STUN、TURN、ICE、WebRTC のスタック全体の基盤となるトランスポートです。
Delphi / C++Builder から UDP データグラムを送受信できます。IPv4 と IPv6、オプションの DTLS セッションと SOCKS5 経路に対応し、STUN、TURN、ICE、WebRTC のスタック全体の基盤となるトランスポートです。
高性能な UDP データグラムクライアントです。STUN、TURN、ICE、RTCPeerConnection、そして独自に実装するあらゆる UDP プロトコルの基盤となります。
TsgcUDPClient
Windows, macOS, Linux, iOS, Android
Core / Standard / Professional / Enterprise
Host / Port を設定して Active := True にし、送信したいテキストまたはバイト列を指定して WriteData を呼び出すだけです。受信したデータグラムは OnUDPRead に到達します。
uses
sgcP2P, sgcUDP_Classes, sgcSocket_Classes;
// TFormUDP は FClient: TsgcUDPClient と FIncoming: TStringList を保持します
procedure TFormUDP.CreateClient;
begin
FClient := TsgcUDPClient.Create(nil);
FClient.Host := '127.0.0.1';
FClient.Port := 4000;
FClient.OnUDPRead := OnUDPRead;
FClient.Active := True;
FClient.WriteData('hello over UDP');
end;
procedure TFormUDP.OnUDPRead(Sender: TObject; Socket: TsgcUDPSocket;
Bytes: TsgcBytes);
var
oStream: TStringStream;
begin
// 読み取りスレッドで発生します。コントロールを操作する前にマーシャリングしてください
oStream := TStringStream.Create('');
try
oStream.Write(Bytes[0], Length(Bytes));
FIncoming.Add(oStream.DataString);
finally
oStream.Free;
end;
end;
// includes: sgcP2P.hpp, sgcUDP_Classes.hpp, sgcSocket_Classes.hpp
TsgcUDPClient *Client = new TsgcUDPClient(this);
Client->Host = "127.0.0.1";
Client->Port = 4000;
Client->OnUDPRead = OnUDPRead;
Client->Active = true;
Client->WriteData("hello over UDP");
void __fastcall TFormUDP::OnUDPRead(TObject *Sender,
TsgcUDPSocket *Socket, TsgcBytes Bytes)
{
// 読み取りスレッドで発生します。コントロールを操作する前にマーシャリングしてください
}
薄く予測可能な UDP ソケット層です。STUN / TURN / ICE / WebRTC や任意のカスタムデータグラムプロトコルのトランスポートとして利用されます。
WriteData(text) および WriteData(bytes) は、Host / Port 宛のデータグラムをキューに追加します。アドレスを受け取るオーバーロードを使えば、任意の宛先へ送信できます。OnUDPRead は、受信したパケットを、それが到着したソケットとともに通知します。
DTLS := True を設定して DTLSOptions を構成すると、データグラムを DTLS セッション内で送受信できます。OnDTLSVerifyPeer ではピア証明書が渡されるため、受け入れるかどうかを判断できます。
Proxy を設定すると、SOCKS5 の UDP ASSOCIATE 経由でデータグラムを転送します。UDP の経路を定義しているのは SOCKS5 だけであるため、HTTP プロキシは EsgcUDPProxyNotSupported で拒否されます。
OnUDPRead では常に TsgcUDPSocket が渡されます。IP と Port は送信元を示し、LocalIP と LocalPort は、後に ICE が host 候補として公開するローカルのベースを示します。
IPVersion は基底のソケットへそのまま渡されます。IPv6 の経路が必要な場合は Id_IPv6 を指定してください。
上位の P2P コンポーネント (TsgcSTUNClient、TsgcTURNClient、TsgcICEClient、TsgcRTCPeerConnection) はすべて、本クライアントを内部 UDP トランスポートとして利用しています。
コンポーネントリファレンスへのディープリンク、すぐに実行可能なデモプロジェクト、そして体験版のダウンロードはこちらです。
| オンラインヘルプ — TsgcUDPClient 本コンポーネントのプロパティ、メソッド、イベントの完全なリファレンスです。 | 開く | |
| デモプロジェクト — Demos\35.P2P\01.UDP_Server_Client すぐに実行可能なサンプルプロジェクトです。sgcWebSockets パッケージに同梱されています。下記より体験版をダウンロードしてください。 | 開く | |
| 技術ドキュメント (PDF) 本コンポーネントのみを対象とした機能解説、クイックスタート、Delphi および C++ Builder のコードサンプル、一次資料への参照を収録しています。 | 開く | |
| ユーザーマニュアル (PDF) ライブラリ内のすべてのコンポーネントを網羅した総合マニュアルです。 | 開く |