@vadim6446

Как сделать доступным веб сокет за пределами одной сети?

Добрый день!
Начал изучать библиотеку 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();
}
  • Вопрос задан
  • 37 просмотров
Пригласить эксперта
Ответы на вопрос 2
@Drno
А фаерволл разрешает подключение из вне?
Ответ написан
@vadim6446 Автор вопроса
Причиной ошибки были неверные конфиги на роутере
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы