DTLS — select всегда возвращает, что есть что прочитать после закрытия сокета

Я создал неблокирующий клиент / сервер на основе примеров из FH Muenster. К сожалению, после закрытия сокета он не позволяет мне подключить другого клиента к серверу.

  • Я проверил на Wireshark, и сообщения о закрытии соединения отправляются правильно.
  • Результат функции Select () (вызов на стороне сервера) равен 0 (срок истек), однако мой файл read fd не возвращается пустым.
  • Первый клиент подключается успешно, когда я пытаюсь подключить второй клиент во время рукопожатия, он выдает ошибку «соединение отказано»

Я знаю, что поведение select отличается от дейтаграмм. Мои вопросы:
— В DTLS совершенно необходимо вызывать listen ()?
— Это нормально, что по истечении времени ожидания (select возвращает 0), fdSetRead не является пустым?

0

Решение

Задача ещё не решена.

Другие решения


По вопросам рекламы [email protected]