[c++] C++ 웹 서버에서의 서버-클라이언트 통신 구현
이 포스트에서는 C++로 간단한 웹 서버를 생성하고, 클라이언트와 서버 간의 통신을 구현하는 방법에 대해 알아보겠습니다.
서버 구현하기
먼저, cpp-netlib
과 같은 C++ 라이브러리를 사용하여 간단한 웹 서버를 생성할 수 있습니다. 아래는 간단한 코드 예시입니다.
#include <iostream>
#include <boost/network/protocol/http/server.hpp>
namespace http = boost::network::http;
struct hello_world;
typedef http::server<hello_world> server;
struct hello_world {
void operator()(server::request const &request, server::response &response) {
response = server::response::stock_reply(server::response::ok, "Hello, World!");
}
};
int main() {
hello_world handler;
server::options options(handler);
server server_(options.address("127.0.0.1").port("8080"));
server_.run();
}
위의 코드에서는 cpp-netlib
을 사용하여 /
경로에 대한 요청을 처리하고 “Hello, World!”를 반환하는 간단한 웹 서버를 생성합니다.
클라이언트 구현하기
C++에서는 cURL
라이브러리를 사용하여 클라이언트를 구현할 수 있습니다. 아래는 간단한 코드 예시입니다.
#include <iostream>
#include <curl/curl.h>
int main() {
CURL *curl;
CURLcode res;
curl = curl_easy_init();
if (curl) {
curl_easy_setopt(curl, CURLOPT_URL, "http://localhost:8080");
res = curl_easy_perform(curl);
if (res != CURLE_OK) {
std::cerr << "Error: " << curl_easy_strerror(res) << std::endl;
}
curl_easy_cleanup(curl);
}
return 0;
}
위의 코드에서는 cURL
을 사용하여 http://localhost:8080
에 GET 요청을 보내고, 서버에서 반환된 응답을 출력합니다.
이제, C++를 사용하여 간단한 웹 서버 및 클라이언트를 구현하는 방법을 알아보았습니다. 다양한 기능을 추가하여 웹 애플리케이션을 더욱 확장시킬 수 있습니다.
더 많은 정보는 다음 문서를 참고할 수 있습니다.
- cpp-netlib: https://github.com/cpp-netlib/cpp-netlib
- cURL: https://curl.haxx.se/