Delphi UDP 클라이언트

Delphi/C++Builder에서 UDP 데이터그램을 주고받아요. IPv4와 IPv6, 선택적인 DTLS 세션과 SOCKS5 경로를 지원하며, STUN과 TURN, ICE, WebRTC 스택 전체가 이 전송 위에 올라가 있어요.

TsgcUDPClient

고성능 UDP 데이터그램 클라이언트 — STUN, TURN, ICE, RTCPeerConnection 및 직접 작성하는 모든 커스텀 UDP 프로토콜의 기반이에요.

컴포넌트 클래스

TsgcUDPClient

프로토콜

UDP (RFC 768)

플랫폼

Windows, macOS, Linux, iOS, Android

에디션

Core / Standard / Professional / Enterprise

컴포넌트를 놓고 패킷을 보내세요

Host / Port를 설정하고 Active := True 한 뒤, 보낼 텍스트나 바이트로 WriteData를 호출하세요. 들어오는 데이터그램은 OnUDPRead로 도착해요.

uses
  sgcP2P, sgcUDP_Classes, sgcSocket_Classes;

// TFormUDP는 FClient: TsgcUDPClient와 FIncoming: TStringList를 보유

procedure TFormUDP.CreateClient;
begin
  FClient := TsgcUDPClient.Create(nil);
  FClient.Host := '127.0.0.1';
  FClient.Port := 4000;

  FClient.OnUDPRead := OnUDPRead;

  FClient.Active := True;
  FClient.WriteData('hello over UDP');
end;

procedure TFormUDP.OnUDPRead(Sender: TObject; Socket: TsgcUDPSocket;
  Bytes: TsgcBytes);
var
  oStream: TStringStream;
begin
  // 읽기 스레드에서 발생하므로 컨트롤을 다루기 전에 마샬링하세요
  oStream := TStringStream.Create('');
  try
    oStream.Write(Bytes[0], Length(Bytes));
    FIncoming.Add(oStream.DataString);
  finally
    oStream.Free;
  end;
end;
// includes: sgcP2P.hpp, sgcUDP_Classes.hpp, sgcSocket_Classes.hpp
TsgcUDPClient *Client = new TsgcUDPClient(this);
Client->Host = "127.0.0.1";
Client->Port = 4000;
Client->OnUDPRead = OnUDPRead;

Client->Active = true;
Client->WriteData("hello over UDP");

void __fastcall TFormUDP::OnUDPRead(TObject *Sender,
  TsgcUDPSocket *Socket, TsgcBytes Bytes)
{
  // 읽기 스레드에서 발생하므로 컨트롤을 다루기 전에 마샬링하세요
}

내부 구성

STUN / TURN / ICE / WebRTC 및 모든 커스텀 데이터그램 프로토콜의 전송 계층으로 사용되는 얇고 예측 가능한 UDP 소켓 계층이에요.

유니캐스트 송수신

WriteData(text)WriteData(bytes)Host / Port로 보낼 데이터그램을 큐에 넣고, 주소를 받는 오버로드는 다른 엔드포인트로도 보낼 수 있어요. OnUDPRead는 수신 패킷을 도착한 소켓과 함께 전달해요.

DTLS

DTLS := True로 설정하고 DTLSOptions를 채우면 데이터그램이 DTLS 세션 안에서 전달돼요. OnDTLSVerifyPeer가 피어 인증서를 전달하므로 수락 여부를 직접 결정할 수 있어요.

SOCKS5 프록시

Proxy는 SOCKS5 UDP ASSOCIATE를 통해 데이터그램을 전달해요. UDP 경로를 정의하는 것은 SOCKS5뿐이라서, HTTP 프록시는 EsgcUDPProxyNotSupported로 거부돼요.

읽어 들이는 소켓

모든 OnUDPReadTsgcUDPSocket을 함께 전달해요. IPPort는 보낸 쪽을 가리키고, LocalIPLocalPort는 ICE가 나중에 호스트 후보로 공개하는 로컬 base를 가리켜요.

IPv4 / IPv6

IPVersion은 하위 소켓으로 그대로 전달되므로, IPv6 경로가 필요하면 Id_IPv6으로 설정하세요.

P2P 스택의 기반

모든 상위 P2P 컴포넌트(TsgcSTUNClient, TsgcTURNClient, TsgcICEClient, TsgcRTCPeerConnection)가 이 클라이언트를 UDP 전송 계층으로 내부에서 사용해요.

명세 및 참고 자료

이 컴포넌트가 구현하는 프로토콜의 공인 출처예요.

문서 및 데모

컴포넌트 레퍼런스로 바로 이동하고, 바로 실행할 수 있는 데모 프로젝트를 받아보고, 체험판을 다운로드하세요.

온라인 도움말 — TsgcUDPClient 이 컴포넌트의 전체 속성, 메서드, 이벤트 레퍼런스예요.
데모 프로젝트 — Demos\35.P2P\01.UDP_Server_Client 바로 실행할 수 있는 예제 프로젝트예요. sgcWebSockets 패키지에 포함되어 있으니 아래에서 체험판을 다운로드해 보세요.
기술 문서 (PDF) 이 컴포넌트의 기능, 빠른 시작, Delphi 및 C++ Builder 코드 샘플, 출처 참고 자료예요.
사용자 설명서 (PDF) 라이브러리의 모든 컴포넌트를 다루는 종합 설명서예요.
최고의 가성비: All-Access모든 eSeGeCe 제품과 프리미엄 지원이 포함되어 연 €1,059부터 이용할 수 있어요.
All-Access 가격 보기

Delphi에서 UDP를 보낼 준비가 되셨나요?

무료 체험판을 다운로드하고 Delphi 애플리케이션에 UDP 데이터그램 지원을 추가해 보세요.