TsgcSTUNClient

TsgcSTUNClient 组件。

简介

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

 

该组件允许使用 UDPTCP 作为传输层。使用 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;

 

参考

指南