Delphi UDP 서버
포트에서 UDP 데이터그램을 수신하고 각각을 애플리케이션으로 전달해요. TsgcSTUNServer와 TsgcTURNServer를 구동하는 것과 동일한 엔진이에요.
포트에서 UDP 데이터그램을 수신하고 각각을 애플리케이션으로 전달해요. TsgcSTUNServer와 TsgcTURNServer를 구동하는 것과 동일한 엔진이에요.
고성능 UDP 리스너 — 포트에 바인딩하고, 모든 피어로부터 데이터그램을 받고, 특정 엔드포인트에 응답하는 일을 바인딩된 소켓 하나로 처리해요.
TsgcUDPServer
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는 보낸 쪽을 식별하는 IP와 Port를 가진 TsgcUDPSocket과 함께 발생해요.
Socket.WriteData는 동일한 소켓으로 발신 피어에게 데이터그램을 돌려보내고, 서버에는 다른 엔드포인트로 보낼 수 있는 WriteData(ip, port, ...)도 있어요.
WatchDog는 리스너가 응답하지 않으면 다시 시작하고, OnBeforeWatchDog에서 재시작을 취소할 수 있어요. OnStartup과 OnShutdown이 모든 바인딩의 시작과 끝을 알려요.
패밀리는 IPVersion으로 설정하고, 서버가 여러 주소에서 수신해야 한다면 AddBinding, RemoveBinding, GetBinding으로 주소마다 항목을 Bindings에 추가하세요.
STUN 및 TURN 서버(완전한 RFC 8489 / 8656 구현)는 이 컴포넌트 위에 구축돼요 — 모든 커스텀 UDP 프로토콜도 동일하게 구축할 수 있어요.
DTLS := True로 설정하고 DTLSOptions를 채우면 데이터그램이 DTLS 세션 안에서 오가고, OnDTLSVerifyPeer에서 어떤 피어 인증서를 수락할지 결정해요.
컴포넌트 레퍼런스로 바로 이동하고, 바로 실행할 수 있는 데모 프로젝트를 받아보고, 체험판을 다운로드하세요.
| 온라인 도움말 — TsgcUDPServer 이 컴포넌트의 전체 속성, 메서드, 이벤트 레퍼런스예요. | 열기 | |
| 데모 프로젝트 — Demos\35.P2P\01.UDP_Server_Client 바로 실행할 수 있는 예제 프로젝트예요. sgcWebSockets 패키지에 포함되어 있으니 아래에서 체험판을 다운로드해 보세요. | 열기 | |
| 기술 문서 (PDF) 이 컴포넌트의 기능, 빠른 시작, Delphi 및 C++ Builder 코드 샘플, 출처 참고 자료예요. | 열기 | |
| 사용자 설명서 (PDF) 라이브러리의 모든 컴포넌트를 다루는 종합 설명서예요. | 열기 |