Этот озадачивает меня.Я получаю ошибку о поиске, когда я даже не звоню?
У меня есть код, который выглядит примерно так:
// send 42
uint value = 42;
byte[] msg = BitConverter.GetBytes(value);
stream.Write(msg, 0, sizeof(uint));
, и я получаю это исключение:
System.NotSupportedException was unhandled
Message="This stream does not support seek operations."
Source="System"
StackTrace:
at System.Net.Sockets.NetworkStream.Seek(Int64 offset, SeekOrigin origin)
at System.IO.BufferedStream.FlushRead()
at System.IO.BufferedStream.Write(Byte[] array, Int32 offset, Int32 count)
...
поток имеет тип System.IO.BufferedStream
.Что может происходить?
изменить с более подробной информацией:
sizeof(uint)==msg.length
в этом случае.
Поток объявлен как stream = new BufferedStream(new NetworkStream(socket), 1024)
edit:
Вот и все!В то время как можно читать и писать на одном NetworkStream
, при переключении на BufferedStream
необходимо иметь отдельный для чтения и записи.Очевидно, можно просто вызвать конструктор NetworkStream
дважды в одном сокете, чтобы получить это.
Я бы принял ответы Джастина и Ганса, если бы мог, потому что один позволил мне точно понять, что случилось, идругой привел меня к решению.Спасибо всем!