ICE Client

Delphi/C++Builder에서 완전한 ICE 알고리즘을 실행하세요 — 호스트, 서버 리플렉시브 및 릴레이 후보를 수집하고, STUN 연결 확인을 수행하며, RFC 8445에 따라 최적 쌍을 선택합니다.

TsgcICEClient

RFC 8445 ICE 상태 머신을 구현합니다 — 후보 수집, 우선순위 지정, 쌍 생성, 연결 확인(USE-CANDIDATE 포함 BindingRequest), 선택 및 동의 유효성 확인.

컴포넌트 클래스

TsgcICEClient

프로토콜

ICE (RFC 8445)

플랫폼

Windows, macOS, Linux, iOS, Android

에디션

Professional / Enterprise

서버 구성, 수집, 교환, 확인

STUN/TURN ICE 서버를 구성하고 GatherCandidates를 호출한 뒤, 대역 외로 피어와 후보 목록을 교환하고 StartChecks로 작동 중인 쌍을 선택하세요.

uses
  sgcP2P;

var
  ICE: TsgcICEClient;
begin
  ICE := TsgcICEClient.Create(nil);
  ICE.IceServers.Add('stun:stun.l.google.com:19302');
  ICE.IceServers.Add('turn:turn.example.com', 'alice', 'secret');

  ICE.OnICELocalCandidate := procedure(Sender: TObject;
    const aCandidate: string)
  begin
    SignalToPeer(aCandidate); // out-of-band SDP / WebSocket
  end;

  ICE.OnICEConnectionStateChanged := procedure(Sender: TObject;
    const aState: TsgcICEConnectionState)
  begin
    Memo1.Lines.Add('ICE: ' + GetEnumName(TypeInfo(TsgcICEConnectionState), Ord(aState)));
  end;

  ICE.GatherCandidates;
end;
// uses: sgcP2P
TsgcICEClient *ICE = new TsgcICEClient(this);
ICE->IceServers->Add("stun:stun.l.google.com:19302");
ICE->GatherCandidates();

내부 구성

TsgcRTCPeerConnection 아래에서 동작하거나 비WebRTC P2P에서 독립적으로 실행할 수 있는 재사용 가능한 ICE 엔진입니다.

후보 수집

모든 로컬 인터페이스에서 호스트 후보를, 각 STUN 서버에서 서버 리플렉시브 후보를, 각 TURN 서버에서 릴레이 후보를 병렬로 수집합니다.

쌍 생성 및 우선순위 지정

RFC 8445 §6.1.2에 따라 후보 쌍 우선순위를 계산하고 확인 목록을 정렬합니다. 동결된 쌍은 기반이 진행되면 동결 해제됩니다.

연결 확인

표준에 따라 PRIORITY, ICE-CONTROLLING / ICE-CONTROLLED, USE-CANDIDATE 속성이 포함된 STUN BindingRequest를 전송합니다. 트리거된 확인은 인바운드 자극에 의해 실행됩니다.

선택

쌍이 성공하고 제어 에이전트가 USE-CANDIDATE를 표시하면 컴포넌트가 iceConnected와 함께 OnICEConnectionStateChanged를 발생시키고, 최종 선택된 쌍에서 iceCompleted를 발생시킵니다.

동의 유효성 확인

RFC 7675 동의 유효성 프로브를 구현합니다 — 선택된 쌍에 주기적인 STUN BindingRequest를 전송하고, 동의가 만료되면 OnICEConnectionStateChanged(iceFailed)를 발생시킵니다.

시그널링 무관

컴포넌트는 특정 시그널링 채널을 가정하지 않습니다. 로컬 후보를 WebSocket / SIP / HTTP 시그널링으로 전달하고, 원격 후보를 다시 입력하세요.

사양 및 참고문헌

이 컴포넌트가 구현하는 프로토콜의 공식 출처입니다.

문서 및 데모

컴포넌트 레퍼런스로 바로 이동하고, 실행 가능한 데모 프로젝트를 받아보세요.

온라인 도움말 — TsgcICEClient 이 컴포넌트의 전체 속성, 메서드 및 이벤트 레퍼런스입니다.
데모 프로젝트 — Demos\35.P2P\04.ICE 실행 가능한 예제 프로젝트입니다. sgcWebSockets 패키지에 포함되어 있습니다.
기술 문서 (PDF) Delphi 및 C++ Builder용 코드 샘플과 기능 설명이 포함된 기술 문서입니다.
사용자 매뉴얼 (PDF) 라이브러리의 모든 컴포넌트를 다루는 종합 매뉴얼입니다.

Delphi에서 ICE를 실행할 준비가 되셨나요?

무료 체험판을 다운로드하고 Delphi 애플리케이션에 완전한 ICE 후보 수집과 연결 확인을 추가해 보세요.