- Если я (клиент) записываю в сетевой поток (на сервер), но сервер не читает поток, пока я не выполню какую-либо команду.Что происходит с этими битами?
Данные, которые вы записываете в поток, будут переданы в ядро вашей ОС, где они будут запланированы и в конечном итоге отправлены по сети.Выходная очередь может быть заполнена, в этом случае функция отправки может либо ждать, либо отказаться от отправки, либо ждать асинхронно - это зависит.
После того, как данные отправлены клиентом и получены на сервере, онисобрал, собрал и проверил в ядре серверной ОС.Если все в порядке, данные будут ждать в очереди ввода, пока вы не прочитаете их.
Они хранятся где-то на стороне сервера, пока не будут прочитаны?
Итакда, ваше понимание верно.
Когда я читаю «поток» с помощью команды stream.read (c #) Откуда я на самом деле читаю?
Я не знаю особенностей C #, но позвольте мне изложить этотаким образом - на этом уровне абстракции данные всегда читаются из ядра;из куска памяти принимающего компьютера.Функция может ожидать появления данных (опционально, позволяя другим задачам выполняться в это время).Я не ожидал бы ничего низкого уровня здесь.Я также не удивлюсь, если ваш потоковый считыватель может буферизовать данные или передавать их порциями (например, методом readline), но опять же - я не знаю особенностей C #.