2013-11-12 2 views
0

Ребята, я пытаюсь использовать SSLStream для тестирования моего приложения, и до сих пор он прошел успешно (успешно завершена проверка клиента/сервера), но проблема у меня есть:Как читать из SSLStream, когда вы не знаете длину?

Как узнать, достигли ли я конец?

Пример Microsoft с «EOF» просто не работает, и я попробовал «\ r \ n \ r» сравнение, но иногда с длинными ответами он отключается, и поэтому я могу получить только часть информации. Как я могу читать из этого потока, не зная, как долго это поток?

Я также попытался сравнить последнюю позицию потока с переменной, которая удерживает последнюю позицию последнего цикла, и это тоже не работает (когда вы пытаетесь прочитать, но вы достигли конца, IOException).

ответ

0

Когда больше нет данных для чтения из потока, SSLStream.Read будет возвращать ноль.

См: http://msdn.microsoft.com/en-us/library/system.net.security.sslstream.read(v=vs.110).aspx

+0

Это не происходит в моем случае. Я получаю IOException, если я не выхожу из цикла чтения. Я действительно не понимаю, в чем проблема. Я проверяю подлинность своего клиента, клиент отправляет данные и не читает их, пока я не сломаюсь. – Anonymous

+0

Вы контролируете оба конца соединения и что IOException вы получаете точно? – William

+0

Да, я закончил тем, что сделал действительно противный способ - я жду, когда исключение начнется, чтобы узнать, что в потоке больше нет контента. В сочетании с настройкой тайм-аута, работает хорошо, но его очень неприятный способ читать из потока. Я думаю, что MS должна улучшить SSLStream намного больше, чтобы использоваться в производственной среде. – Anonymous

Смежные вопросы