TsgcSTUNClient bileşeni.
TsgcSTUNClient, STUN protokolünü uygulayan ve STUN sunucularına binding istekleri göndermenize olanak tanıyan istemcidir.
Bileşen, taşıma olarak UDP ve TCP kullanmanıza olanak tanır. UDP'yi taşıma olarak kullanırken, yanıt kısa bir süre sonra gelmediyse istekleri yeniden göndermek için bir Retransmission mekanizması uygular.
Genellikle STUN sunucuları UDP portu 3478 üzerinde çalışır ve kimlik doğrulama gerektirmez, bu nedenle bir STUN binding isteği göndermek için, istemcinin nereye bağlanacağını bilmesini sağlamak amacıyla sunucu özelliklerini doldurun ve bileşenin sunucudan yanıt alacağı olayları işleyin.
Sunucuyu yapılandırın
STUN sunucusuna bir istek bağlaması göndermek için SendRequest yöntemini çağırın.
Olayları işleme
Sunucu başarılı bir yanıt döndürürse, OnSTUNResponseSuccess olayı çağrılır ve aBinding nesnesini okuyarak binding bilgisine erişebilirsiniz.
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;