Получение SSL_ERROR_SYSCALL для входящего соединения DTLS на существующем соединении DTLS на том же порту
На существующем соединении DTLS, т. Е. Рукопожатие DTLS уже успешно выполнено на порте 5000, если сервер получает входящее соединение DTLS, то есть клиентский пакет DTLS Hello, тогда генерируется SSL_read SSL_ERROR_SYSCALL
,
Может кто-нибудь дать мне понять, почему.
Сценарий заключается в том, что Клиент установил соединение DTLS с сервером на порту 5000 сервера. Изменение IP-адреса клиента может быть связано с переходом с Wi-Fi на 3G или наоборот. Итак, теперь Клиент снова попытается установить DTLS-соединение с сервером на том же порту 5000 сервера.
Пожалуйста, кто-нибудь, дайте мне знать, как
Q1. почему SSL_read генерирует ошибку SSL_ERROR_SYSCALL и что можно сделать, чтобы продолжить?
Q2. Можем ли мы обработать другое входящее соединение DTLS на существующем соединении DTLS на том же порту без очистки уже существующего соединения DTLS?
Заранее спасибо за помощь, Винеет Сривастава
1 ответ
Нашли решение проблемы.
Выявленных проблем было две:
При получении входящего соединения DTLS через порт, имеющий другое Соединение DLTS, необходимо было сгенерировать другой дескриптор SSL и рассматривать его как отдельное соединение DTLS.
длина, указанная в вызове SSL_Read, должна быть правильной.
После задания правильного параметра и генерации нового дескриптора SSL проблема была решена. В любом случае спасибо за комментарии.