STUN Client
타입이 지정된 STUN(RFC 8489) 클라이언트로 NAT 뒤의 리플렉시브 엔드포인트를 탐색하세요. ICE 후보 수집과 WebRTC의 부트스트랩 단계로 사용됩니다.
타입이 지정된 STUN(RFC 8489) 클라이언트로 NAT 뒤의 리플렉시브 엔드포인트를 탐색하세요. ICE 후보 수집과 WebRTC의 부트스트랩 단계로 사용됩니다.
STUN 클라이언트 — 바인딩 요청, XOR-MAPPED-ADDRESS 추출, MESSAGE-INTEGRITY / FINGERPRINT 지원, RFC 8489에 따른 재전송 타이머.
TsgcSTUNClient
Windows, macOS, Linux, iOS, Android
Standard / Professional / Enterprise
STUN 서버 호스트/포트를 설정하고 SendBindingRequest를 호출한 뒤, OnSTUNMappedAddress에서 MappedAddress / MappedPort를 읽으세요.
uses
sgcP2P;
var
STUN: TsgcSTUNClient;
begin
STUN := TsgcSTUNClient.Create(nil);
STUN.Host := 'stun.l.google.com';
STUN.Port := 19302;
STUN.OnSTUNMappedAddress := procedure(Sender: TObject;
const aMappedAddress, aMappedPort: string)
begin
Memo1.Lines.Add('public: ' + aMappedAddress + ':' + aMappedPort);
end;
STUN.SendBindingRequest;
end;
// uses: sgcP2P
TsgcSTUNClient *STUN = new TsgcSTUNClient(this);
STUN->Host = "stun.l.google.com";
STUN->Port = 19302;
STUN->SendBindingRequest();
ICE에서 사용하는 메시지 무결성 및 지문 확장 기능을 갖춘 타입 지정 RFC 8489 STUN 클라이언트입니다.
SendBindingRequest는 STUN 0x0001 메시지를 전송하고, 응답은 파싱된 XOR-MAPPED-ADDRESS 속성과 함께 OnSTUNMappedAddress에 나타납니다.
Authentication.UserName / Password를 설정하면 컴포넌트가 MESSAGE-INTEGRITY(HMAC-SHA1 / HMAC-SHA256)를 계산합니다. 렐름과 논스는 401 챌린지 응답에서 추출됩니다.
UDP를 통한 STUN은 애플리케이션 계층 재전송이 필요합니다. 컴포넌트는 RFC 8489 §6.2.1에 따른 표준 백오프(RTO / Rc / Rm)를 구현합니다.
XOR-MAPPED-ADDRESS는 두 패밀리 중 하나로 반환됩니다 — 컴포넌트는 두 가지를 모두 디코딩하고 정규 텍스트 형식을 MappedAddress에 저장합니다.
여러 STUN 서버에 여러 TsgcSTUNClient 인스턴스를 사용하여 서버 리플렉시브 ICE 후보를 수집하세요 — 로컬 인터페이스당 하나씩입니다.
내부적으로 TsgcUDPClient를 사용합니다. 로컬 포트 바인딩을 구성할 수 있어 필요 시 STUN, ICE 및 데이터 경로가 엔드포인트를 공유할 수 있어요.
컴포넌트 레퍼런스로 바로 이동하고, 실행 가능한 데모 프로젝트를 받아보세요.
| 온라인 도움말 — TsgcSTUNClient 이 컴포넌트의 전체 속성, 메서드 및 이벤트 레퍼런스입니다. | 열기 | |
| 데모 프로젝트 — Demos\35.P2P\02.STUN 실행 가능한 예제 프로젝트입니다. sgcWebSockets 패키지에 포함되어 있습니다. | 열기 | |
| 기술 문서 (PDF) Delphi 및 C++ Builder용 코드 샘플과 기능 설명이 포함된 기술 문서입니다. | 열기 | |
| 사용자 매뉴얼 (PDF) 라이브러리의 모든 컴포넌트를 다루는 종합 매뉴얼입니다. | 열기 |