C++Builder에서 WebSocket 서버 만들기

· 컴포넌트

TsgcWebSocketServer는 sgcWebSockets 모음의 일부이며, C++Builder에서 WebSocket 서버를 만들기 위한 고수준 컴포넌트를 제공해요. 이 가이드에서는 수신 메시지에 자동으로 응답하는 최소 서버를 만드는 방법을 안내해요.

VCL 프로젝트 만들기

  1. C++Builder를 열고 새 VCL Forms Application을 만드세요.
  2. 폼에 TsgcWebSocketServer 컴포넌트를 추가하세요(기본 이름은 sgcWSServer1이에요).
  3. 선택 사항으로 활동 로그를 표시하려면 TMemo(MemoLog)를 추가하세요.

서버 설정

폼의 OnCreate 핸들러에서 서버를 설정하세요:

void __fastcall TForm1::FormCreate(TObject *Sender)
{
  sgcWSServer1->Port   = 9001;  // listen on port 9001
  sgcWSServer1->Active = true;  // start the server
} 

수신 메시지에 응답하기

수신한 텍스트를 클라이언트에 다시 전송하려면 OnMessage 이벤트를 처리하세요:

void __fastcall TForm1::sgcWSServer1Message(TsgcWSConnection *Connection,
                                            const UnicodeString Text)
{
  Connection->WriteData("Server received: " + Text);  // reply only to sender
  // sgcWSServer1->Broadcast(Text); // alternative: send to all clients
  MemoLog->Lines->Add(Text);                           // optional logging
}

WriteData는 특정 연결에만 응답을 전송하고, Broadcast는 연결된 모든 클라이언트에 메시지를 보내요.

서버 실행

애플리케이션을 컴파일하고 실행하세요. ws://<your-host>:9001/에 연결하는 모든 WebSocket 클라이언트는 보내는 메시지마다 "Server received:"가 앞에 붙은 응답을 받게 돼요.