que tienen una aplicación cliente-servidor en el que el servidor y el cliente tienen que enviar y recibir objetos de una clase personalizada través de la red. Estoy usando la clase TcpClient para transmitir los datos. Estoy serializando el objeto en el lado del remitente y enviando la secuencia resultante de bytes al receptor. Pero en el receptor, cuando trato de des-serializar los bytes recibidos, se lanza excepción de serialización y los detalles son:Envío y recepción de objetos personalizados utilizando la clase TCPClient en C#
flujo La entrada no es un formato binario válido . Los contenidos iniciales (en bytes) son: 0D-0A-00-01-00-00-00-FF-FF-FF-01-00-00-00-00-00 ...
Mi código de servidor que serializa el objeto es:
byte[] userDataBytes;
MemoryStream ms = new MemoryStream();
BinaryFormatter bf1 = new BinaryFormatter();
bf1.Serialize(ms, new DataMessage());
userDataBytes = ms.ToArray();
netStream.Write(userDataBytes, 0, userDataBytes.Length);
el código de cliente que el dE-serializa es:
readNetStream.Read(readMsgBytes, 0, (int)tcpServer.ReceiveBufferSize);
MemoryStream ms = new MemoryStream(readMsgBytes);
BinaryFormatter bf1 = new BinaryFormatter();
ms.Position = 0;
object rawObj = bf1.Deserialize(ms);
DataMessage msgObj = (DataMessage)rawObj;
por favor me ayude a resolver este problema y posiblemente sugerir cualquier otro método para transmitir objetos de clases personalizadas acr red OSS utilizando TcpClient en C#.
Gracias, Rakesh.