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.
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.
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.
TsgcSTUNServer
Windows, macOS, Linux, iOS, Android
Professional / Enterprise
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;
Kendi barındırdığınız bir STUN sunucusu — şirket içi WebRTC dağıtımları ve özel bulut testleri için idealdir.
Gelen Binding istekleri XOR-MAPPED-ADDRESS, MAPPED-ADDRESS (eski) ve FINGERPRINT ile karşılanır — standart RFC 8489 yanıt biçimine uygundur.
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.
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.
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.
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.
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.
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ı. | Aç | |
| Demo Projesi — Demos\35.P2P\02.STUN Çalışmaya hazır örnek proje. sgcWebSockets paketinin içinde gelir — denemeyi aşağıdan indirin. | Aç | |
| 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. | Aç | |
| Kullanıcı Kılavuzu (PDF) Kütüphanedeki her bileşeni kapsayan kapsamlı kılavuz. | Aç |
Delphi ve C++ Builder'da kendi barındırdığınız bir STUN sunucusu çalıştırma hakkında sık sorulan sorular.
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.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.