Поскольку я не мог найти способ просмотреть данные (прочитать данные без использования буфера), как было задано в Как просматривать StreamSocket для данных в приложениях UWP Сейчас я пытаюсь сделать свой собственный "просмотр", но пока безуспешно.
Я не понимаю, как я могу читать данные из StreamSocket таким образом, который позволит мне использовать тайм-ауты и оставить соединение пригодным для использования в случае истечения тайм-аута.
В итоге проблема в следующем. В моем, скажем, IMAP-клиенте я получаю ответ от сервера, и если этот ответ отрицательный, мне нужно немного подождать, чтобы увидеть, отправит ли сервер немедленно еще один ответ (иногда сервер может это сделать, с дополнительными подробностями об ошибке или даже нулевом пакете, чтобы закрыть соединение). если сервер не отправил другого ответа, я в порядке, просто оставляю метод и возвращаюсь к вызывающему. Затем вызывающий абонент может отправить больше данных в поток, получить больше ответов и т. д.
Итак, после отправки запроса и получения первоначального ответа мне нужно в некоторых случаях прочитать сокет еще раз с очень маленьким интервалом ожидания, и если данные не приходят, просто ничего не делать.