Éste me desconcierta. Me aparece un error al buscar cuando ni siquiera lo llamo?¿Por qué arrojaría BufferedStream.Write "Esta secuencia no es compatible con las operaciones de búsqueda"?
tengo código que se ve algo como esto:
// send 42
uint value = 42;
byte[] msg = BitConverter.GetBytes(value);
stream.Write(msg, 0, sizeof(uint));
y me sale esta excepción:
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)
...
corriente es de tipo System.IO.BufferedStream
. ¿Qué podría estar pasando?
edición con más información:
sizeof(uint)==msg.length
en este caso.
La corriente se declara como stream = new BufferedStream(new NetworkStream(socket), 1024)
edición:
Eso fue todo! Si bien se puede leer y escribir en una sola NetworkStream
, cuando se cambia a un BufferedStream
que es necesario tener una separada para la lectura y la escritura. Al parecer, simplemente se puede llamar al constructor NetworkStream
dos veces en el mismo socket para obtenerlo.
lo aceptaría tanto respuestas de Hans si pudiera Justin y, debido a que uno me dejó exactamente entiendo lo que estaba mal, y el otro me llevó a la solución. ¡Gracias a todos!
En caso de que ayuda, la BufferedStream es en la parte superior de un NetworkStream. – redtuna
¿cómo ha declarado la secuencia de almacenamiento en búfer y de qué tamaño? ¿A qué tipo de flujo está asociado? y no debería sizeof (uint) ser msg.length? –