TURN İstemcisi

Delphi/C++Builder üzerinden bir TURN sunucusuyla iletişim kurun. Aktarmalı taşıma adresleri ayırın, izinleri ve kanalları yönetin, ardından simetrik NAT arkasındaki eşlerle veri alışverişi yapın — RFC 8656 uyarınca.

TsgcTURNClient

TURN istemcisi — Allocate, CreatePermission, ChannelBind, Send / Indication / Data, Refresh; tümü RFC 8656 uyarınca uzun vadeli kimlik bilgileriyle imzalanır.

Bileşen sınıfı

TsgcTURNClient

Protokol

TURN (RFC 8656)

Platformlar

Windows, macOS, Linux, iOS, Android

Sürüm

Professional / Enterprise

Ayırın, izin verin, gönderin

TURN sunucusu / kullanıcı adı / parola değerlerini ayarlayın, Allocate çağırın, ardından her eş için CreatePermission ve veriyi aktarmak için Send / SendIndication kullanın.

uses
  sgcP2P;

var
  TURN: TsgcTURNClient;
begin
  TURN := TsgcTURNClient.Create(nil);
  TURN.Host := 'turn.example.com';
  TURN.Port := 3478;
  TURN.Authentication.UserName := 'alice';
  TURN.Authentication.Password := 'secret';

  TURN.OnTURNAllocated := procedure(Sender: TObject;
    const aRelayedAddress, aRelayedPort: string)
  begin
    Memo1.Lines.Add('relay: ' + aRelayedAddress + ':' + aRelayedPort);
    TURN.CreatePermission('192.0.2.1');
    TURN.SendIndication('192.0.2.1', 5000, 'hello via TURN');
  end;

  TURN.Allocate;
end;
// uses: sgcP2P
TsgcTURNClient *TURN = new TsgcTURNClient(this);
TURN->Host = "turn.example.com";
TURN->Port = 3478;
TURN->Authentication->UserName = "alice";
TURN->Authentication->Password = "secret";
TURN->Allocate();

İçinde neler var

Türü belirli bir RFC 8656 TURN istemcisi — yalnızca STUN ile NAT geçişi başarısız olduğunda WebRTC için aktarma katmanı.

Allocate / Refresh

Allocate, REQUESTED-TRANSPORT (UDP, TCP) içeren bir Allocate isteği gönderir ve aktarmalı bir taşıma adresi elde eder. Refresh ömrü uzatır; Free açıkça serbest bırakır.

CreatePermission

CreatePermission(peerIp), aktarmanın datagramlarını ileteceği bir eşi kaydeder. İzinler 5 dakika sonra otomatik olarak sona erer — gerektiğinde yenileyin.

ChannelBind

ChannelBind(channelNumber, peerEndpoint), 36 baytlık Send/Data ek yükünü atlar. Bileşen, 4 baytlık ChannelData başlığını otomatik olarak kodlar.

Uzun vadeli kimlik bilgileri

Authentication.UserName / Password, 401 challenge yanıtından çıkarılan realm ve nonce kullanılarak MESSAGE-INTEGRITY değerini doldurur.

TCP/TLS üzerinden TURN

UDP'yi engelleyen ortamlar için temel istemcinin Transport değerini TCP veya TLS olarak ayarlayın — RFC 6062 / 6056 taşıma seçenekleri desteklenir.

WebRTC'ye hazır

TsgcRTCPeerConnection, TsgcTURNClient bileşenini IceServers değerlerinden biri olarak kullanır — Allocate, CreatePermission ve ChannelBind akışı şeffaf bir şekilde gerçekleşir.

Spesifikasyonlar ve referanslar

Bu bileşenin uyguladığı protokol için yetkili kaynaklar.

Belgeler ve Demolar

Bileşen referansına doğrudan bağlanın, çalışmaya hazır demo projesini alın ve denemeyi indirin.

Çevrimiçi Yardım — TsgcTURNClient Bu bileşen için tam özellik, metot ve olay referansı.
Demo Projesi — Demos\35.P2P\03.TURN Çalışmaya hazır örnek proje. sgcWebSockets paketinin içinde gelir — denemeyi aşağıdan indirin.
Teknik Belge (PDF) Özellikler, hızlı başlangıç, Delphi ve C++ Builder için kod örnekleri ve birincil kaynak referansları — yalnızca bu bileşen.
Kullanıcı Kılavuzu (PDF) Kütüphanedeki her bileşeni kapsayan kapsamlı kılavuz.

Delphi'den TURN Kullanmaya Hazır mısınız?

Ücretsiz denemeyi indirin ve Delphi uygulamalarınıza TURN tabanlı aktarma ekleyin.