У меня проблема, затем я пытаюсь переподключиться к серверу, используя Poco, лежащий в основе моего Proxy.В конце сеансов подключения я получаю пакет FIN, ACK с сервера.Затем TCP отправляет ACK, чтобы ответить серверу о получении FIN.Так что у меня полуоткрытое соединение.Мой сокет закрыт для чтения, но не для отправки.После нескольких секунд ожидания я отправляю http-запрос,
auto& requestStream = mSession->sendRequest(request);
Poco::StreamCopier::copyStream(request.stream(), requestStream);
auto& responseStream = mSession->receiveResponse(response);
Poco::StreamCopier::copyStream(responseStream, response.send());
TCP отправляет FIN, ACK и отправляет SYN, чтобы начать другой сеанс подключения, поэтому я получаю исключение по SSL_Read ().
OneЧтобы определить это, определите состояние сокета, используя shutdown
if (SSL_get_shutdown(ssl) & SSL_RECEIVED_SHUTDOWN)
reconnect();
, но это не разрешено, bcs SSL* ssl
- это приватное поле SecureSocketImpl _impl
, которое также является приватным полем ServerSocketImpl
.
Вы когда-нибудь сталкивались с этой проблемой?
Это экран wireshark .