TsgcSTUNClient

Componente TsgcSTUNClient.

Introdução

TsgcSTUNClient é o cliente que implementa o protocolo STUN e permite que você envie requisições de binding para servidores STUN.

 

O componente permite que você use UDP e TCP como transporte. Ao usar UDP como transporte, ele implementa um mecanismo de Retransmissão para reenviar requisições se a resposta não tiver chegado após um curto período.

 

Uso básico

Normalmente os servidores STUN rodam na porta UDP 3478 e não requerem autenticação, portanto, para enviar uma requisição de binding STUN, preencha as propriedades do servidor para que o cliente saiba onde conectar e trate os eventos em que o componente receberá a resposta do servidor.

 

Configure o servidor

 

Chame o método SendRequest, para enviar uma requisição de binding ao servidor STUN.

 

Trate os eventos

 


    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;

 

Referência

Guides