UDP 서버
포트에서 UDP 데이터그램을 수신하고 각각을 애플리케이션으로 전달해요. TsgcSTUNServer와 TsgcTURNServer를 구동하는 것과 동일한 엔진이에요.
포트에서 UDP 데이터그램을 수신하고 각각을 애플리케이션으로 전달해요. TsgcSTUNServer와 TsgcTURNServer를 구동하는 것과 동일한 엔진이에요.
고성능 UDP 리스너 — 포트에 바인딩하고, 모든 피어로부터 데이터그램을 받고, 특정 엔드포인트에 응답하고, 워커 스레드로 코어 전반에 걸쳐 확장돼요.
TsgcUDPServer
Windows, macOS, Linux, iOS, Android
Professional / Enterprise
Port를 설정하고 Active := True 한 뒤, OnMessage에서 수신 데이터그램을 처리하고 Connection.WriteData로 응답하세요 — 소켓 하나로 임의 개수의 원격 피어를 처리해요.
uses
sgcP2P;
var
Server: TsgcUDPServer;
begin
Server := TsgcUDPServer.Create(nil);
Server.Port := 4000;
Server.OnMessage := procedure(Connection: TsgcUDPConnection;
const aText: string)
begin
// echo back to the originating peer
Connection.WriteData('echo: ' + aText);
end;
Server.Active := True;
end;
// uses: sgcP2P
TsgcUDPServer *Server = new TsgcUDPServer(this);
Server->Port = 4000;
Server->Active = true;
멀티스레드 UDP 리스너로, 각 데이터그램을 워커 풀로 전달하고 응답 경로용 TsgcUDPConnection을 제공해요.
바인딩된 소켓 하나가 임의 개수의 원격 엔드포인트로부터의 데이터그램을 처리해요. 각 OnMessage는 발신 PeerIP / PeerPort를 식별하는 TsgcUDPConnection과 함께 발생해요.
Connection.WriteData는 동일한 소켓을 사용해 발신 피어에게 데이터그램을 돌려보내요 — 추가 발신 바인딩이 필요 없어요.
워커 풀이 수신 패킷을 처리해요 — 핸들러가 무거운 작업을 한다면 WorkerCount로 구성하세요. 수신 스레드는 절대 차단되지 않아요.
IPVersion으로 IPv4 전용, IPv6 전용 또는 듀얼 스택 바인딩을 지원해요. 멀티캐스트 그룹 참여는 JoinMulticastGroup으로 제공돼요.
STUN 및 TURN 서버(완전한 RFC 8489 / 8656 구현)는 이 컴포넌트 위에 구축돼요 — 모든 커스텀 UDP 프로토콜도 동일하게 구축할 수 있어요.
발신 쓰기에서 DontFragment := True로 설정하세요 — 커스텀 프로토콜의 path-MTU 탐지에 유용해요.
컴포넌트 레퍼런스로 바로 이동하고, 바로 실행할 수 있는 데모 프로젝트를 받아보고, 체험판을 다운로드하세요.
| 온라인 도움말 — TsgcUDPServer 이 컴포넌트의 전체 속성, 메서드, 이벤트 레퍼런스예요. | 열기 | |
| 데모 프로젝트 — Demos\35.P2P\01.UDP_Server_Client 바로 실행할 수 있는 예제 프로젝트예요. sgcWebSockets 패키지에 포함되어 있으니 아래에서 체험판을 다운로드해 보세요. | 열기 | |
| 기술 문서 (PDF) 이 컴포넌트의 기능, 빠른 시작, Delphi 및 C++ Builder 코드 샘플, 출처 참고 자료예요. | 열기 | |
| 사용자 설명서 (PDF) 라이브러리의 모든 컴포넌트를 다루는 종합 설명서예요. | 열기 |