Delphi STUN Sunucusu

Delphi ile kendi STUN (RFC 8489) sunucunuzu çalıştırın. Binding isteklerini standart XOR-MAPPED-ADDRESS yanıtıyla karşılayın — özel ağlarda, şirket içi dağıtımlarda ve ICE başlangıç işleminde faydalıdır.

TsgcSTUNServer

Türü belirli bir RFC 8489 STUN sunucusu — Binding / Indication mesajlarını işler, XOR-MAPPED-ADDRESS ile yanıt verir, uzun vadeli kimlik doğrulama için isteğe bağlı olarak MESSAGE-INTEGRITY zorunlu kılar.

Bileşen sınıfı

TsgcSTUNServer

Protokol

STUN (RFC 8489)

Platformlar

Windows, macOS, Linux, iOS, Android

Sürüm

Professional / Enterprise

Bırakın, portu ayarlayın, bir STUN uç noktanız olsun

Port (varsayılan 3478) ve Active := True ayarlayın — sunucunuz artık Binding isteklerini standart RFC 8489 XOR-MAPPED-ADDRESS yanıtıyla karşılar.

uses
  sgcP2P, sgcP2P_STUN_Classes;

// TFormSTUNServer, FServer: TsgcSTUNServer ve işleyiciyi tutar

procedure TFormSTUNServer.StartServer;
begin
  FServer := TsgcSTUNServer.Create(nil);
  FServer.Port := 3478;

  // isteğe bağlı: uzun süreli kimlik bilgileri
  FServer.STUNOptions.Authentication.Enabled := True;
  FServer.STUNOptions.Authentication.LongTermCredentials.Enabled := True;
  FServer.STUNOptions.Authentication.LongTermCredentials.Realm :=
    'example.com';

  FServer.OnSTUNRequestAuthorization := OnSTUNRequestAuthorization;

  FServer.Active := True;
end;

procedure TFormSTUNServer.OnSTUNRequestAuthorization(Sender: TObject;
  const aRequest: TsgcSTUN_Message;
  const aUsername, aRealm: string;
  var Password: string);
begin
  // o kullanıcının parolasını döndürün, boş değer isteği reddeder
  Password := LookupPassword(aUsername);
end;
// includes: sgcP2P.hpp, sgcP2P_STUN_Classes.hpp
TsgcSTUNServer *Server = new TsgcSTUNServer(this);
Server->Port = 3478;
Server->STUNOptions->Authentication->Enabled = true;
Server->STUNOptions->Authentication->LongTermCredentials->Enabled = true;
Server->STUNOptions->Authentication->LongTermCredentials->Realm = "example.com";
Server->OnSTUNRequestAuthorization = OnSTUNRequestAuthorization;
Server->Active = true;

İçinde neler var

Kendi barındırdığınız bir STUN sunucusu — şirket içi WebRTC dağıtımları ve özel bulut testleri için idealdir.

Binding isteği işleyicisi

Gelen Binding istekleri XOR-MAPPED-ADDRESS, MAPPED-ADDRESS (eski) ve FINGERPRINT ile karşılanır — standart RFC 8489 yanıt biçimine uygundur.

Uzun vadeli / kısa vadeli kimlik doğrulama

MESSAGE-INTEGRITY gerektirmek için STUNOptions.Authentication.Enabled seçeneğini açın ve realm değerini LongTermCredentials.Realm üzerinde ayarlayın. OnSTUNRequestAuthorization kullanıcı adını ve realm değerini size sunar, siz de eşleşen parolayı döndürürsünüz.

Denetlediğiniz yanıt öznitelikleri

STUNOptions.BindingAttributes, eski RFC 3489 MAPPED-ADDRESS, OTHER-ADDRESS, RESPONSE-ORIGIN ve SOURCE-ADDRESS özniteliklerini açıp kapatır; AlternateServer ise belirttiğiniz sunucuyla 300 Try Alternate yanıtı verir.

IPv4 / IPv6

IPVersion üzerinden her iki aileye veya dual-stack yapısına bağlanın. XOR-MAPPED-ADDRESS yanıtı, gelen taşımanın ailesini kullanır.

Eskiyen nonce yenileme

LongTermCredentials.StaleNonce, bir nonce değerinin ne kadar süre geçerli kalacağını belirler. Süresi dolduğunda sunucu, yeni bir nonce ile 438 Stale Nonce yanıtı verir; RFC 8489 §9.2 de bunu ister.

Tanılama

OnSTUNRequestSuccess ve OnSTUNRequestError, isteği ve sunucunun göndermek üzere olduğu yanıtı, temizleyebileceğiniz bir var Accept ile size verir. LogFile ham alışverişi diske yazar.

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 — TsgcSTUNServer Bu bileşen için tam özellik, metot ve olay referansı.
Demo Projesi — Demos\35.P2P\02.STUN Ç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.

STUN Sunucusu Sıkça Sorulan Sorular

Delphi ve C++ Builder'da kendi barındırdığınız bir STUN sunucusu çalıştırma hakkında sık sorulan sorular.

Bir TsgcSTUNServer bileşeni ekleyin, Port ayarlayın (varsayılan 3478) ve Active := True yapın. Sunucu ardından gelen Binding isteklerini kanonik XOR-MAPPED-ADDRESS yanıtıyla yanıtlar. İsteğe bağlı olarak Authentication etkinleştirin ve uzun vadeli kimlik bilgileriyle MESSAGE-INTEGRITY gerektirmek için OnSTUNRequestAuthorization olayını işleyin.
STUN'u RFC 8489'a göre uygular; Binding ve Indication mesajlarını işler ve XOR-MAPPED-ADDRESS, eski MAPPED-ADDRESS ve FINGERPRINT ile yanıt verir. IPv4 ve IPv6'yı, isteğe bağlı STUN-over-TLS'yi destekler ve NAT davranışı keşfi için RFC 5780'e başvurur.
Hayır. TsgcSTUNServer, doğrudan kendi Delphi veya C++ Builder uygulamanıza gömdüğünüz, kendi barındırdığınız bir STUN sunucusudur, bu nedenle ayrı bir coturn örneği dağıtmanıza ve işletmenize gerek yoktur. Özel ağlar, şirket içi WebRTC dağıtımları ve kendi kontrolünüz altında ICE önyüklemesi için idealdir.
STUN sunucusu, sgcWebSockets Enterprise sürümünün bir parçasıdır ve Delphi 7'den en yeni Delphi sürümüne ve eşleşen C++ Builder sürümlerine kadar Windows, macOS, Linux, iOS ve Android üzerinde destek sağlar. Kendi projenizde bir STUN uç noktası kurmak için ücretsiz denemeyi indirin.
En avantajlı seçenek: All-AccessTüm eSeGeCe ürünleri, Premium Destek dahil, yılda €1,059'dan itibaren.
All-Access fiyatlarına bakın

Kendi STUN Sunucunuzu Çalıştırmaya Hazır mısınız?

Ücretsiz denemeyi indirin ve Delphi ile bir STUN uç noktası ayağa kaldırın.