Вот какой-то псевдокод
Client:
boolean sent = false;
byte[] message = new String("test").getBytes();
send()
{
sent = sslSocket.sendMessage(message);
if (sent)
sslSocket.close();
}
Я пишу тесты, которые должны быть довольно быстрыми.Как только Client
успешно отправит сообщение, оно должно немедленно закрыться.В моих тестах Client
возвращает sent == true
, поэтому сокет закрывается.Однако Server
вызывает исключение received close_notify during handshake
.Это исключение не происходит, когда я использую Thread.sleep(200)
прямо перед закрытием Client
.
Наши сокеты являются нашими собственными абстракциями и обертками для сокетов Java.Из этого сообщения я должен предположить, что Сервер не завершил рукопожатие, но Client
имеет?Зачем еще sent
вернуть true
?Однако я не могу подтвердить, что сообщение действительно было получено Server
, потому что исключение выдается немедленно.У меня есть только Client
sent
логическое значение, на которое можно положиться.
Итак, мой вопрос Как я могу подтвердить, что рукопожатие завершено?
Спасибо за помощьи извините за любую двусмысленность!Я могу устранить любые путаницы!