Я пытаюсь реализовать клиент HTTP, используя asio
(автономная версия boost::asio
) в образовательных целях. Моя проблема с keep-alives (на уровне HTTP). Если на сервере все еще открыт сокет, я хочу просто отправить данные через него. Если сервер уже закрыт, это конец, мне нужно сначала позвонить connect()
, Я попытался просто записать в сокет, и если он возвращается с ошибкой, а затем снова подключиться, но даже если сервер уже закрыт, его завершение, запись все равно возвращается нормально (то есть без ошибок), фактически теряя данные. Как я могу определить, открыто ли соединение на сервере, или, по крайней мере, действительно ли запись прошла успешно?
Задача ещё не решена.
Других решений пока нет …