TsgcSTUNClient

TsgcSTUNClient 组件。

简介

TsgcSTUNClient 是实现 STUN 协议的客户端,允许您向 STUN 服务器发送绑定请求。

 

该组件允许使用 UDP 和 TCP 作为传输层。使用 UDP 作为传输层时,实现了重传机制,在短时间内未收到响应时重新发送请求。

 

基本用法

通常 STUN 服务器运行在 UDP 3478 端口上且不需要认证,因此要发送 STUN 绑定请求,请填写服务器属性以便客户端知道连接位置,并处理组件从服务器接收响应时的相关事件。

 

配置服务器

 

调用方法 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;

 

参考

指南