asio, tcp socket, async_connect() и 'connection timed out' спустя 5 минут
От: niXman Ниоткуда https://github.com/niXman
Дата: 24.11.17 12:25
Оценка:
привет!

подключаюсь к некоторому серверу, который в данный момент не "слушает" порт, и получаю connection timed out спустя 5 минут.
расстраивает то, что нужно ждать аж пять минут.

в гугле есть решения по переводу сокета в неблокирующий режим, но для этого нужно иметь валидный дескриптор сокета. но boost::asio::ip::tcp::socket получает валидный дескриптор только после коннекта.
т.е. этот код работать не будет до тех пор, пока не подключишься:
boost::asio::ip::tcp::socket socket(io_service);
boost::asio::socket_base::non_blocking_io command(true);
socket.io_control(command);


есть еще вариант создавать дескриптор сокета при помощи int s = ::socket(...); и передавать его в констуктор, но как-то некрасиво...

есть идеи?

спасибо.
пачка бумаги А4 стОит 2000 р, в ней 500 листов. получается, лист обычной бумаги стОит дороже имперского рубля =)
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.