Как я могу ограничить приемник asio для локального хоста и/или локальных сетей?C++

Программы на C++. Форум разработчиков
Ответить
Anonymous
 Как я могу ограничить приемник asio для локального хоста и/или локальных сетей?

Сообщение Anonymous »

Я пытаюсь понять, как ограничить TCP-сокет локальным хостом. Наконец я нашел код, который компилируется, но не принимает никаких соединений.

Код принимает соединения с endpoint_all, но не с переменной «endpoint_local», установленной с помощью tcp::endpoint(ip::address::from_string("127.0.0.1"),port2);

boost::asio::io_service io_service;
short port = 9000;
tcp::endpoint endpoint_all = boost::asio::ip::tcp::endpoint(boost::asio::ip::tcp::v4(),port);
tcp::endpoint endpoint_local = boost::asio::ip::tcp::endpoint(boost::asio::ip::address::from_string("127.0.0.1"),port);
try
{
server s(io_service, std::atoi("9000"),endpoint_all);

io_service.run();
}
catch (std::exception& e)
{
}


Обновление: я могу получить доступ к сокету через «telnet 127.0.0.1 9000» и «telnet localhost 9000». Фактическое приложение, о котором идет речь (PHP XDebug), не подключается к конечной точке с ограниченным IP-адресом, а делает иначе.

"telnet localhost 9000" выдает следующую ошибку, но подключается. Я не подключаюсь к локальному хосту в php.ini, но, возможно, это сообщение связано. "Соединение отклонено для ::1:"

Я думаю, было бы правильно разрешить подключения к ::1: независимо от того, ошибка это или нет.

Trying ::1...
telnet: connect to address ::1: Connection refused
Trying fe80::1...
telnet: connect to address fe80::1: Connection refused
Trying 127.0.0.1...
Connected to localhost.


Подробнее здесь: https://stackoverflow.com/questions/345 ... l-networks
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

Вернуться в «C++»