Чтение данных из сокета в C#
Как корректно и без костылей считать данные из сокета?
До этого писал на C++/Qt и там был замечательный метод QTcpSocket::readAll() который возвращал все что было передано в сокет, в шарпе из подобного увидел только StreamReader.ReadToEnd(), но он выкидывает исключение мол этот объект не поддерживает seeking(или как-то так).
В гугле нашел только способы которые предлагают отлавливать окончание данных посредством try{}catch{}, но мне кажется это просто грубые кривые костыли.
В общем буду рад любой помощи по данному вопросу.
P.S.: А в Qt все было так просто, понятно и логично...