Как читать входящий поток tcp, пока не найден разделитель? - PullRequest
5 голосов
/ 11 марта 2010

Как вы читаете входящий поток tcp, пока в C # не будет найден определенный разделитель? Единственное возможное решение, которое я нашел, - это чтение входящего потока по одному байту за раз.

1 Ответ

6 голосов
/ 11 марта 2010

Чтение сокета TCP и сканирование разделителя - две разные вещи.

Вы можете прочитать все доступные данные на неблокирующем сокете в байтовый массив / строку, а затем отсканировать байтовый массив для определения вашего разделителя. Сделайте все, что вам нужно, в том числе, возможно, сохраните данные после разделителя для следующей попытки чтения.

Лучше всего использовать какой-нибудь буфер для добавления входящих данных, чтобы операции с сокетами точно не диктовали обработку данных.

...