Добрый день!
Начал изучать библиотеку boost, asio. В локальной сети все работает, сейчас пытаюсь сделать так, чтобы сокет был доступен из вне, есть сервак, статический ip адрес. На роутере сделал проброс портов static_ip:8083->192.168.0.52:8083, но сокет недоступен. Подскажите, пожалуйста, куда копать, чтобы сокет стал доступным?
Вот код:
auto const address = boost::asio::ip::make_address("192.168.0.52");
auto const port = static_cast<unsigned short>(std::atoi("8083"));
boost::asio::io_context ioc{1};
tcp::acceptor acceptor{ioc, {address, port}};
while(1){
tcp::socket socket{ioc};
acceptor.accept(socket);
std::cout<<"socket accepted"<<std::endl;
std::thread{[q = std::move(socket)]() mutable {
boost::beast::websocket::stream<tcp::socket> ws {std::move(q)};
ws.write_buffer_bytes(32789);
ws.accept();
ws.binary(true);
while(1){
try{
boost::beast::flat_buffer buffer;
ws.read(buffer);
ws.write(boost::asio::buffer(std::string("Hello World")));
}
catch(boost::beast::system_error const& se){
if(se.code() != boost::beast::websocket::error::closed){
std::cout << se.code().message() << std::endl;
break;
}
}
}
}}.detach();
}