чтение нескольких сообщений от нескольких клиентов - PullRequest
0 голосов
/ 17 июня 2019

У меня есть сервер сокетов TCP и связь с несколькими клиентами по TLSv1.2.Я использую OpenSSL.В текущей архитектуре несколько клиентов могут отправлять неизвестное количество сообщений неизвестного размера.

Хотя сервер работает правильно, я все еще чувствую, что то, как я обращаюсь с SSL_read, больше похоже на обходной путь, чем на правильное решение.,Проблема состоит в том, что когда больше нет входящих сообщений от клиентов, SSL_read предложит печально известный SSL_ERROR_WANT_READ.И я не знаю, как правильно различать, если это означает, что больше нет сообщений, или просто то, что OpenSSL пытается «заставить это работать».По сути, я не уверен, когда остановить чтение.

Я использовал SSL_pending, но поскольку SSL всегда читает всю запись, SSL_pending всегда возвращает 0 (даже при поступлении большего количества сообщений).

В моемтекущее решение Я повторяю чтение 10 раз, и если это не удается, я предполагаю, что больше нет сообщений и заканчиваю чтение.Не чувствует себя хорошо.

Спасибо за любые предложения по правильному шаблону.

...