1. Boost 공식사이트에서 다운로드 받아주세요.
2. Current Release 버전을 다운로드 해주세요. 아래 사진처럼 운영체제에 맞게 7z, zip 둘중에 아무거나 다운받고, 본인이 원하는 경로에 압축 풀어주세요.
3. bootstrap.bat 실행 > 자동으로 설치됨
4. b2.exe가 설치될 것입니다. 이를 또 실행시켜주세요.
5. Visual Stuido에서 C++ 프로젝트를 만들고, 우측에 프로젝트(사진에선 Test)를 클릭하고 View > Property Pages >> Configuration > VC++ Directories > Include Directories 에서 Edit... > Boost.Asio를 압축해제한 디렉토리를 선택해줍니다. (아래사진 참조)
6. 테스트 코드를 실행시켜봅니다. 테스트 코드 설명은 다음 글 참고해주세요.
#include <iostream>
#include <boost/asio.hpp>
using namespace boost::asio;
class TCPServer {
public:
TCPServer(io_service& io_service, short port)
: acceptor_(io_service, ip::tcp::endpoint(ip::tcp::v4(), port)),
socket_(io_service) {
StartAccept();
}
private:
void StartAccept() {
acceptor_.async_accept(socket_,
[this](boost::system::error_code ec) {
if (!ec) {
std::cout << "Client connected: " << socket_.remote_endpoint() << std::endl;
StartRead();
}
StartAccept();
});
}
void StartRead() {
async_read(socket_,
buffer(data_),
[this](boost::system::error_code ec, std::size_t length) {
if (!ec) {
std::cout << "Received data: " << data_ << std::endl;
StartRead();
}
else {
std::cout << "Client disconnected: " << socket_.remote_endpoint() << std::endl;
StartAccept(); // Add this line to accept new connections after client disconnects
}
});
}
ip::tcp::acceptor acceptor_;
ip::tcp::socket socket_;
std::string data_;
};
int main() {
try {
io_service io_service;
TCPServer server(io_service, 12345);
std::cout << "Server started. Listening on port 12345..." << std::endl;
io_service.run();
}
catch (std::exception& e) {
std::cerr << e.what() << std::endl;
}
return 0;
}
7. 실행 확인
'Unreal > C++ 서버' 카테고리의 다른 글
Mongocxx Driver 설치 (0) | 2024.03.16 |
---|---|
mongocxx(v3) 드라이버 제거 방법 (0) | 2024.03.09 |
비동기적 서버란? (0) | 2024.02.25 |
C++, Visual Studio를 활용한 Boost.Asio 설치 및 실행 테스트 코드 설명 (0) | 2024.02.24 |
소켓을 생성한다는 것은? (1) | 2023.12.22 |