Delphi UDP 서버

포트에서 UDP 데이터그램을 수신하고 각각을 애플리케이션으로 전달해요. TsgcSTUNServer와 TsgcTURNServer를 구동하는 것과 동일한 엔진이에요.

TsgcUDPServer

고성능 UDP 리스너 — 포트에 바인딩하고, 모든 피어로부터 데이터그램을 받고, 특정 엔드포인트에 응답하는 일을 바인딩된 소켓 하나로 처리해요.

컴포넌트 클래스

TsgcUDPServer

프로토콜

UDP (RFC 768)

플랫폼

Windows, macOS, Linux, iOS, Android

에디션

Professional / Enterprise

컴포넌트를 놓고, 수신하고, 응답하세요

Port를 설정하고 Active := True 한 뒤, OnUDPRead에서 수신 데이터그램을 처리하고 Socket.WriteData로 응답하세요 — 소켓 하나로 임의 개수의 원격 피어를 처리해요.

uses
  sgcP2P, sgcUDP_Classes, sgcSocket_Classes;

// TFormUDPServer는 FServer: TsgcUDPServer와 핸들러를 보유

procedure TFormUDPServer.StartServer;
begin
  FServer := TsgcUDPServer.Create(nil);
  FServer.Port := 4000;

  FServer.OnUDPRead := OnUDPRead;

  FServer.Active := True;
end;

procedure TFormUDPServer.OnUDPRead(Sender: TObject;
  Socket: TsgcUDPSocket; Bytes: TsgcBytes);
begin
  // 데이터그램이 도착한 피어에게 그대로 돌려보냄
  Socket.WriteData(TBytes(Bytes));
end;
// includes: sgcP2P.hpp, sgcUDP_Classes.hpp, sgcSocket_Classes.hpp
TsgcUDPServer *Server = new TsgcUDPServer(this);
Server->Port = 4000;
Server->OnUDPRead = OnUDPRead;
Server->Active = true;

void __fastcall TFormUDPServer::OnUDPRead(TObject *Sender,
  TsgcUDPSocket *Socket, TsgcBytes Bytes)
{
  // 데이터그램이 도착한 피어에게 그대로 돌려보냄
  Socket->WriteData(TBytes(Bytes));
}

내부 구성

모든 데이터그램을 도착한 TsgcUDPSocket과 함께 핸들러로 전달하는 UDP 리스너예요. 그 소켓이 곧 응답 경로예요.

단일 포트, 다중 피어

바인딩된 소켓 하나가 임의 개수의 원격 엔드포인트로부터 오는 데이터그램을 처리해요. 각 OnUDPRead는 보낸 쪽을 식별하는 IPPort를 가진 TsgcUDPSocket과 함께 발생해요.

응답 경로

Socket.WriteData는 동일한 소켓으로 발신 피어에게 데이터그램을 돌려보내고, 서버에는 다른 엔드포인트로 보낼 수 있는 WriteData(ip, port, ...)도 있어요.

WatchDog

WatchDog는 리스너가 응답하지 않으면 다시 시작하고, OnBeforeWatchDog에서 재시작을 취소할 수 있어요. OnStartupOnShutdown이 모든 바인딩의 시작과 끝을 알려요.

IPv4 / IPv6와 다중 바인딩

패밀리는 IPVersion으로 설정하고, 서버가 여러 주소에서 수신해야 한다면 AddBinding, RemoveBinding, GetBinding으로 주소마다 항목을 Bindings에 추가하세요.

TsgcSTUNServer / TsgcTURNServer의 기반

STUN 및 TURN 서버(완전한 RFC 8489 / 8656 구현)는 이 컴포넌트 위에 구축돼요 — 모든 커스텀 UDP 프로토콜도 동일하게 구축할 수 있어요.

DTLS

DTLS := True로 설정하고 DTLSOptions를 채우면 데이터그램이 DTLS 세션 안에서 오가고, OnDTLSVerifyPeer에서 어떤 피어 인증서를 수락할지 결정해요.

명세 및 참고 자료

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

문서 및 데모

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

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

UDP 서버를 실행할 준비가 되셨나요?

무료 체험판을 다운로드하고 Delphi에서 UDP 데이터그램을 수신해 보세요.