TsgcSTUNClient

TsgcSTUNClient コンポーネント。

はじめに

TsgcSTUNClientは、STUNプロトコルを実装するクライアントであり、STUNサーバーへbinding要求を送信できます。

 

このコンポーネントでは UDPTCP をトランスポートとして使用できます。UDP をトランスポートとして使用する場合、短時間後にレスポンスが届かないときにリクエストを再送する再送メカニズムを実装しています。

 

基本的な使い方

通常、STUNサーバーはUDPポート3478で実行され、認証を必要としません。そのため、STUN request bindingを送信するには、クライアントが接続先を知ることができるようサーバープロパティを設定し、コンポーネントがサーバーから応答を受信するイベントを処理してください。

 

サーバーの設定

 

SendRequest メソッドを呼び出して、STUN サーバーへのリクエストバインディングを送信します。

 

イベントの処理

 


    oSTUN := TsgcSTUNClient.Create(nil);
    oSTUN.Host := 'stun.sgcwebsockets.com';
    oSTUN.Port := 3478;
    oSTUN.SendRequest;

    procedure OnSTUNResponseSuccess(Sender: TObject; const aSocket: TsgcSocketConnection; 
      const aMessage: TsgcSTUN_Message; const aBinding: TsgcSTUN_ResponseBinding);
    begin
      DoLog('Remote IP: ' + aBinding.RemoteIP + '. Remote Port: ' + IntToStr(aBinding.RemotePort));
    end;

    procedure OnSTUNResponseError(Sender: TObject; const aSocket: TsgcSocketConnection; 
      const aMessage: TsgcSTUN_Message; const aError: TsgcSTUN_ResponseError);
    begin
      DoLog('Error: ' + IntToStr(aError.Code) + ' ' + aError.Reason);
    end;

 

リファレンス

ガイド